Scenario outline에서, 여러개의 태그를 섞어서 사용해야할 경우도 있습니다. 이 때, 각각의 example마다 다른 태그를 지정해줄 수 있습니다.
@Library
Scenario Outline: Verify AddBook API functionality
# Enter steps here
Given the Book details with <isbn> and <aisle>
When We execute the AddBook PostAPI method
Then book is successfully added
Examples:
|isbn | aisle |
|isbn20 | 23219231 |
|isbn17 | 234 |
위와 같은 Scenario가 있다고 가정해봅시다. 이때 example이 2줄이므로, 해당 시나리오 아웃라인은 2번을 연달아 실행하는데요, 각 example마다 다른 태그를 지정하고 싶을 때는 어떻게 해야할까요?
그 때는 각 example마다 태그를 달아주면 됩니다.
@Library
Scenario Outline: Verify AddBook API functionality
# Enter steps here
Given the Book details with <isbn> and <aisle>
When We execute the AddBook PostAPI method
Then book is successfully added
@Regression
Examples:
|isbn | aisle |
|isbn20 | 23219231 |
@Smoke
Examples:
|isbn | aisle |
|isbn17 | 234 |
cucumber에서 태그는 각각의 example에게 상속이 됩니다. 즉, 모든 example들은 Scenario outline본체의 @Library
를 가지고 있다는 것이지요.
또한 실행 시에 @Regression
태그만 지정하고 실행한다면, 하나의 Scenario outline이라고 할 지언정, 해당 태그를 가진 example만 실행되게 됩니다.
Behave BehaviorDataDriven/features --tags="@Regression"
이렇게 @Smoke
태그를 가진 example은 skip된 것을 알 수 있습니다.
이렇게 태그를 적절히 사용해주면, 다른 툴과의 연계도 좀 더 쉬워질 것 입니다.
가령 테스트케이스 관리툴인 Testrail 과의 연계시에, 태그에 Testrail의 테스트케이스 번호를 기재해주고, 각각의 시나리오 혹은 시나리오 아웃라인이 실행됨에 따라, 지정한 테스트 케이스의 결과를 갱신할 수도 있을 것 입니다.