非常感谢您的帮助。
谢谢
答案 0 :(得分:8)
ruby -e '500.times { `cucumber` }'
答案 1 :(得分:5)
在你的rake文件中:
require 'rubygems'
require 'cucumber'
require 'cucumber/rake/task'
cuke_task = Cucumber::Rake::Task.new(:features) do |t|
t.cucumber_opts = "features --format pretty"
end
task :feature, :name, :times do |task,args|
puts "Executing feature: #{args[:name]} #{args[:times]} times"
cuke_task.cucumber_opts = "features/#{args[:name]}"
args[:times].to_i.times { Rake::Task[:features].execute }
end
首先,我创建了一个默认的黄瓜任务,它可以执行我的所有功能,并为我设计好格式。
之后我定义了一个名为feature
的rake任务,该任务将接受该功能的两个参数name
和执行times
。
然后我扩充cuke任务以使用我指定的功能name
,然后执行Rake任务指定的次数。
$ rake feature['login.feature',500]
答案 2 :(得分:3)
这也可以使用Scenario Outline和嵌套步骤来完成:
使用N个示例创建方案大纲。该方案将运行N次。
Feature: Login Robustness
Scenario Outline: I want to be assured that login works consistently
When i run login # "<login>" repeatedly, it never fails
Examples:
| login |
| repeated login # 1 |
| repeated login # 2 |
| repeated login # N |
…
将您现有的步骤用作您定义的方案大纲中的嵌套步骤:
When(/^i run login \# "(.*?)" repeatedly, it never fails$/) do |login_run_number|
puts login_run_number
steps %{
Given I am at initial login, Core
When A correct username and password are entered, Native (Core)
Then I should be logged in, Native (Core)
}
end
优势:
<强>缺点:强>
答案 3 :(得分:1)
使用以下内容标记您的功能:@ AndIwillwalk500miles
@AndIwillwalk500miles
Feature: Walk A Mile
'That I can walk a mile in another man's shoes.'
Scenario: That I can walk a Mile in loafers
Given I am wearing loafers
And I start at point A
When I walk a mile
Then I am at point B
在features/support/
文件夹中创建ruby文件。惯例似乎是env.rb
或hooks.rb
,但只要它在该文件夹中,您所称的就没关系。我称之为env.rb
。将以下代码放入其中:
Around('@AndIwillwalk500miles') do |scenario, block|
500.times { block.call }
end
完成后,删除标记。如果您只想从您的功能中运行一个方案,请改为标记它。这样,您可以根据需要运行多次或少量测试500次,而无需使用Rake或乱用命令行。如果您在操作系统环境之间移动,这将特别有用。
答案 4 :(得分:-2)
这是一个愚蠢的工作,但试试这个
cucumber features / file.feature features /../ features / file.feature
只要每次文件的路径不相同,你就可以根据需要添加“..”