如何在Ruby方法中处理运行Cucumber功能?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Ruby方法中处理运行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 ...
以上是关于如何在Ruby方法中处理运行Cucumber功能?的主要内容,如果未能解决你的问题,请参考以下文章
在 RubyMine 中运行 Cucumber 测试场景时出错
使用ruby + watir-webdriver + cucumber和parallel_tests gem在多个浏览器中运行测试
AWS Device Farm 上的 ruby-appium-cucumber 问题