У меня есть служба Springboot, которая может загружаться с разными spring.profiles.active
. Сервис изначально был создан для запуска с spring.profiles.active=profile1
. Затем кто-то добавил behave
тест / сценарии для сервиса.
Позже я добавил еще один профиль в службу и теперь хочу запустить тесты поведения для обоих профилей. Итак, сначала запускайте тесты поведения, когда служба запускается с spring.profiles.active=profile1
, а затем снова запускайте тесты, когда служба запускается с spring.profiles.active=profile2
.
Я могу дважды запустить поведенческие тесты и использовать переменные окружения для управления настройками профилей пружины. Я также могу пометить свои сценарии по-разному для двух профилей, например
@profile1
Scenario Outline: test something in profile1
Given: blah
...
@profile2
Scenario Outline: test something in profile2
Given: blah
...
Then run behave tests twice as
>> behave --tags=profile1
>> behave --tags=profile2
Однако существует много сценариев, которые являются общими для обоих профилей, и нет смысла повторять сценарии с разными tags
. Например,
Scenario Outline: test that a user is recommended at least 10 items
Given a user <userId>
when recommendations are generated
then at least 10 items are returned in the recommendations
Examples:
|userId|
|123456| # I want to use this userId for profile1
|234567| # and this one too for profile1
|987654| # but this one and the following for profile2
|876543|
Аналогичная запись предоставляет решение, подобное
Scenario Outline: test that a user is recommended at least 10 items
Given a user <userId>
when recommendations are generated
then at least 10 items are returned in the recommendations
Examples:
|userId|
|123456| # I want to use this userId for profile1
|234567| # and this one too for profile1
Examples:
|userId|
|987654| # but this one and the following for profile2
|876543|
and then use `row2.4` etc to call specific row of examples for the second profile.
Это, однако, не кажется мне элегантным (что если я отключу или перегруппирую примеры позже?).
У меня вопрос, есть ли способ пометить конкретные строки примера?
Итак, что-то вроде
Examples: @profile1
|userId|
|123456| # I want to use this userId for profile1
|234567| # and this one too for profile1
Examples: @profile2
|userId|
|987654| # but this one and the following for profile2
|876543|