如何在 Ruby 方法中处理 运行 Cucumber 特征?
How to handle running Cucumber features within Ruby method?
我在测试开始前使用 AfterConfiguration
挂钩 运行 一些设置配置,但是我面临的问题是当我 运行 我的方法之一他们将 运行 一组在 Ruby 方法中使用反引号的特征文件,这反过来似乎重新初始化黄瓜并重复该过程,所以我陷入了循环
AfterConfiguration do
EnvironmentSetup::TestUsers.create_test_users
end
module EnvironmentSetup
class TestUsers
def self.create_test_users
# other logic here
`cucumber "#{path_to_feature}"` # Use backticks to run cucumber scripts in a subshell
end
end
end
因此,当执行此操作时,它会回到开头,运行又是我的所有其他逻辑
有没有办法只运行这一次,或者忽略第二次循环的AfterConfiguration?声明一个全局变量?
我也试过了
AfterConfiguration do
if defined? $a == nil
EnvironmentSetup::RedisUsers.check_redis_users
EnvironmentSetup::TestUsers.create_test_users
end
结束
module EnvironmentSetup
class TestUsers
def self.create_test_users
# other logic here
$a = true
`cucumber "#{path_to_feature}"` # Use backticks to run cucumber scripts in a subshell
end
end
end
但我猜测是不是在重新初始化时没有携带变量集?
尝试设置环境变量:
AfterConfiguration do
return if ENV['CUCUMBER_CONFIGURED'] == 'yes'
EnvironmentSetup::TestUsers.create_test_users
ENV['CUCUMBER_CONFIGURED'] = 'yes'
end
和运行黄瓜是这样的:
CUCUMBER_CONFIGURED='no'; cucumber ...
我在测试开始前使用 AfterConfiguration
挂钩 运行 一些设置配置,但是我面临的问题是当我 运行 我的方法之一他们将 运行 一组在 Ruby 方法中使用反引号的特征文件,这反过来似乎重新初始化黄瓜并重复该过程,所以我陷入了循环
AfterConfiguration do
EnvironmentSetup::TestUsers.create_test_users
end
module EnvironmentSetup
class TestUsers
def self.create_test_users
# other logic here
`cucumber "#{path_to_feature}"` # Use backticks to run cucumber scripts in a subshell
end
end
end
因此,当执行此操作时,它会回到开头,运行又是我的所有其他逻辑
有没有办法只运行这一次,或者忽略第二次循环的AfterConfiguration?声明一个全局变量?
我也试过了
AfterConfiguration do
if defined? $a == nil
EnvironmentSetup::RedisUsers.check_redis_users
EnvironmentSetup::TestUsers.create_test_users
end
结束
module EnvironmentSetup
class TestUsers
def self.create_test_users
# other logic here
$a = true
`cucumber "#{path_to_feature}"` # Use backticks to run cucumber scripts in a subshell
end
end
end
但我猜测是不是在重新初始化时没有携带变量集?
尝试设置环境变量:
AfterConfiguration do
return if ENV['CUCUMBER_CONFIGURED'] == 'yes'
EnvironmentSetup::TestUsers.create_test_users
ENV['CUCUMBER_CONFIGURED'] = 'yes'
end
和运行黄瓜是这样的:
CUCUMBER_CONFIGURED='no'; cucumber ...