红宝石+黄瓜:如何在代码执行黄瓜?(Ruby + Cucumber: How to execute

2019-08-04 01:44发布

我想从Ruby代码中执行黄瓜功能。

典型地, cucumber与宝石安装的二进制与指定的一个或多个特征在命令行上执行的。

不过,我想定义创建一个动态特征执行流程逻辑。 换句话说,该程序可以计算出哪些功能应该被执行。

是否有可能从Ruby代码指定特征文件实例黄瓜,而不是命令行?

Answer 1:

我发现从邮件列表和一些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代替。



Answer 2:

要转换这个例子命令,用指定的功能和选项:

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进行测试



文章来源: Ruby + Cucumber: How to execute cucumber in code?