我想从Ruby代码中执行黄瓜功能。
典型地, cucumber
与宝石安装的二进制与指定的一个或多个特征在命令行上执行的。
不过,我想定义创建一个动态特征执行流程逻辑。 换句话说,该程序可以计算出哪些功能应该被执行。
是否有可能从Ruby代码指定特征文件实例黄瓜,而不是命令行?
我想从Ruby代码中执行黄瓜功能。
典型地, cucumber
与宝石安装的二进制与指定的一个或多个特征在命令行上执行的。
不过,我想定义创建一个动态特征执行流程逻辑。 换句话说,该程序可以计算出哪些功能应该被执行。
是否有可能从Ruby代码指定特征文件实例黄瓜,而不是命令行?
我发现从邮件列表和一些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)
如果你希望你的创业板公司中的所有功能features/
目录执行,传递一个空数组Main.new
代替。
要转换这个例子命令,用指定的功能和选项:
cucumber features/first.feature features/second.feature -d -f Cucumber::Formatter::Custom
成Ruby代码,它归结为使黄瓜一个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和黄瓜1.3.17进行测试