2

我正在尝试将 Cucumber 与 Test Rail 集成。所以我有一个 Cucumber Ruby 自动化设置。

我希望能够将功能文件中的 Cucumber Gherkin 步骤作为变量传递到自动化中。

这是因为我想将 Cucumber Gherkin 步骤作为 HTTP POST 发送到测试管理系统。

小黄瓜功能文件示例:

Scenario: login scenario
    Given I am on webpage
    When I login
    Then I should see that I am logged in

步骤定义代码:

Given(/^I am on webpage$/) do

#do this Given step from the regex match
#but also how do I, some how grab the string 'Given I am on webpage'
#so I can do an HTTP POST on that string

end

或者更好的方法,也许是:在我开始任何自动化测试之前,我通过某种方式解析所有功能文件并将 HTTP POST 发送到 Test Rail 以更新或填充我添加到 Cucumber 中的任何新测试。如果是这种情况,我该怎么办?

4

2 回答 2

0

我想你一定已经解决了这个问题,因为这个问题是两年前提出的。不过,我最近已经解决了它,我认为我的解决方案可能有些意义。

两步:

首先,在 features/support 下创建一个名为 hooks.rb 的新文件

touch features/support/hooks.rb

其次,将这些内容添加到您的hooks.rb文件中。

Before do |scenario| 
  $step_index = 0
  $stop_count = scenario.test_steps.count
  @scenario = scenario
end

AfterStep do |step|
  if $step_index < $stop_count
    puts "steps: #{@scenario.test_steps[$step_index].text}\n"
  end
  $step_index += 2
end

cucumber features/XXX.feature

您将在终端上找到打印的步骤名称。

于 2018-01-04T07:47:38.657 回答
0

您可以像这样捕获步骤名称:

Given(/^(I am on webpage)$/) do |step_name|
  puts step_name # or whatever
end

即使该步骤带有参数,它也可以工作:

Given(/^(I am on (my|your|their) webpage)$/) do |step_name, pronoun|
  puts step_name # or whatever
  visit send("#{pronoun}_path")
end

也就是说,我同意 Dave McNulla 的评论,即 Cucumber 加版本控制并没有给测试管理系统留下太多工作要做。

解析功能文件听起来像是一个单独的问题。

于 2016-02-06T01:48:45.693 回答