Я новичок в тестировании огурцов.
Я создал два файла функций:
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 |
Но я не хочу этого делать, потому что хочу инкапсулировать каждый тип контента в их собственную функцию тестирования.
По сути, мне нужно разобраться, как запускать определенные файлы шагов в соответствии с функцией, которую я тестирую.