我想在Ruby代码中执行Cucumber特性。
通常,与gem一起安装的cucumber二进制文件在命令行上执行,并指定一个或多个特性。
然而,我想定义一个创建动态特性执行流程的逻辑。换句话说,程序可以确定应该执行哪些功能。
是否可以从Ruby代码中使用指定的功能文件实例化Cucumber,而不是命令行?
发布于 2012-12-14 01:18:03
我从邮件列表和一些API阅读中发现了这一点。
features="path/to/first.feature path/to/second.feature"
runtime = Cucumber::Runtime.new
runtime.load_programming_language('rb')
Cucumber::Cli::Main.new([features]).execute!(runtime)如果您希望执行gem的features/目录中的所有功能,请改为向Main.new传递一个空数组。
发布于 2015-06-05 03:43:51
要在指定了功能和选项的情况下转换此示例命令:
cucumber features/first.feature features/second.feature -d -f Cucumber::Formatter::Custom在Ruby代码中,它归结为传递Cucumber一个args数组:
require 'cucumber'
# Method 1 - hardcoded features
args = %w(features/first.feature features/second.feature -d -f Cucumber::Formatter::Custom)
# Method 2 - dynamic features
features = 'features/first.feature features/second.feature'
args = features.split.concat %w(-d -f Cucumber::Formatter::Custom)
# Run cucumber
begin
Cucumber::Cli::Main.new(args).execute!
rescue SystemExit
puts "Cucumber calls @kernel.exit(), killing your script unless you rescue"
end使用Ruby 2.0.0p598和Cucumber 1.3.17进行测试
https://stackoverflow.com/questions/13864670
复制相似问题