Я новичок в тестировании Cucumber.
Я создал два файла функций:
events.feature
partner.feature
и получил свой шаг определений в папке step_definitions:
./step_definitions/
events.rb
partner.rb
Похоже, Cucumber ищет информацию о шаге во всех файлах .rb.
Есть ли способ ограничить функцию, чтобы она просматривала конкретный файл определения шага?
Причина в том, что Причина, по которой я хочу это сделать, заключается в том, что я получаю ошибки неоднозначного соответствия, даже когда я использую флаг --guess.
Причина того, почему я хочу это сделать, заключается в следующих причинах. Я тестирую CMS и хочу протестировать каждый из различных типов контента (события и партнеры) в отдельных функциях.
events.feature
Feature: Add partner
As an administrator I can add a new partner
Scenario: Create partner
Given I am logged in
When I create a partner
Then I should see content
partner.feature
Feature: Add event
As an administrator I can add a new event
Scenario: Create event
Given I am logged in
When I create an event
Then I should see content
Просто сосредотачиваюсь на том, что я должен увидеть контент 'что есть в обоих сценариях, ошибка возникает из-за того, что в файлах .rb мне нужно включить:
partners.rb
Then /^I should see content$/ do
BROWSER.html.should include('SOME PARTNER CONTENT')
end
events.rb
Then /^I should see content$/ do
BROWSER.html.should include('SOME EVENT CONTENT')
end
, что означает неоднозначное совпадение «Я должен видеть контент» .
Я понимаю, что есть разные способы структурировать это, то есть я мог бы создать компонент контента и использовать схемы сценария:
Feature: Add content
As an administrator I can add a new content
Scenario Outline: Create content
Given I am logged in
When I create an <content type>
Then I should see <example content>
Examples:
|event |March Event |
|partner |Joe Blogs |
Но я не хочу этого делать, потому что я хочу инкапсулировать каждый тип контента в отдельный тестовая функция.
По сути, мне нужно решить, как запускать определенные файлы шагов в соответствии с функцией, которую я тестирую.