RSpec - 针对单个运行与套件

时间:2017-11-22 15:20:16

标签: rspec

这是预期的行为吗?如果是这样,有办法吗?

当我运行套件/没有指定要运行的* .rb文件时,Rspec将描述标记为已传递但未运行未在describe语句内运行被调用的def。所述describe语句在我的spec_helper.rb文件中 但是,当我指定要运行的文件时,它会运行describe语句的主体及其所谓的定义。

我希望这两种情况具有相同的行为。

describe 'Setting up environment from a tag' do
    it 'Is prod', env_prod: true do
        MyEnv = setupEnvironment('prod')
    end
    it 'Is local', env_local: true do
        MyEnv = setupEnvironment('local')
    end
    it 'Is Q', env_q: true do
      MyEnv = setupEnvironment('q')
      puts "setupEnviroment = " + MyEnv.fetch('navPointURL')
    end
    it 'Is Stage', env_stage: true do
      MyEnv = setupEnvironment('stage')
    end
end

def setupEnvironment(envName)
    puts "setupEnvironment was called with #{envName}"
    if (envName == "local")
        tmpEnv = {
        "kioskURL" => "http://kioskdev.local"
         }
    elsif (envName == 'prod')
        tmpEnv= {
          "kioskURL" => "http://kiosk.conductix.net/"
          }
    elsif(envName == "stage")
          tmpEnv = {
          "kioskURL" => "http://kiosks.conductix.net/"
          }
    elsif (envName == "q")
          tmpEnv = {
          "kioskURL" => "http://kioskq.conductix.net/"
          }
    end
    return tmpEnv
end

套件运行时“MyEnv”哈希是空的,即使“Is Q”或“Is Prod”被标记为通过测试。

为什么会这样?

0 个答案:

没有答案