Java Cucumber는 행위 기반 테스트 프레임워크로, 비즈니스 요구사항과 코드 사이의 간극을 좁힐 수 있는 강력한 도구입니다. Cucumber는 태그를 통해 실행할 테스트 시나리오를 선택할 수 있도록 하는 기능을 제공합니다. 이번 글에서는 Java Cucumber에서 다중 태그를 사용하는 방법에 대해 알아보겠습니다.
태그(tag)란?
태그는 Cucumber의 기능 중 하나로, 테스트 시나리오를 세분화하고 구분하기 위해 사용됩니다. 테스트 시나리오를 태그로 그룹화함으로써 개별적으로 실행하거나 제외할 수 있습니다. 간단한 예로 “smoke”, “regression”, “e2e”와 같은 태그를 사용할 수 있습니다.
단일 태그 사용하기
가장 간단한 형태의 태그 사용은 단일 태그(single tag)를 사용하는 것입니다. @태그명
형식으로 테스트 시나리오 앞에 태그를 작성하면 해당 태그가 지정된 테스트 시나리오만 실행됩니다.
@smoke
Scenario: 회원 가입 테스트
Given 사용자가 회원 가입 페이지에 접속한다.
When 필수 정보를 입력하고 가입 버튼을 누른다.
Then 회원 가입이 완료되었음을 확인한다.
이 경우 @smoke
태그가 지정된 테스트 시나리오만 실행됩니다.
다중 태그 사용하기
Java Cucumber에서 다중 태그(multiple tags)를 사용하려면 논리적 연산자 and
, or
, not
을 사용하여 태그를 결합하면 됩니다.
and 연산자 사용하기
and
연산자를 사용하여 여러 태그를 그룹화하면 해당 태그들을 모두 만족하는 테스트 시나리오만 실행됩니다.
@smoke and @regression
Scenario: 로그인 테스트
Given 사용자가 로그인 페이지에 접속한다.
When 아이디와 비밀번호를 입력하고 로그인 버튼을 누른다.
Then 로그인이 완료되었음을 확인한다.
위의 예시에서는 @smoke
와 @regression
두 개의 태그가 모두 지정된 테스트 시나리오만 실행됩니다.
or 연산자 사용하기
or
연산자를 사용하여 여러 태그 중 하나를 만족하는 테스트 시나리오를 실행할 수 있습니다.
@smoke or @e2e
Scenario: 상품 주문 테스트
Given 사용자가 상품 주문 페이지에 접속한다.
When 상품을 선택하고 주문을 완료한다.
Then 주문이 성공적으로 처리되었음을 확인한다.
위의 예시에서는 @smoke
또는 @e2e
두 개의 태그 중 하나를 지정된 테스트 시나리오만 실행됩니다.
not 연산자 사용하기
not
연산자를 사용하여 특정 태그를 제외하는 테스트 시나리오를 실행할 수 있습니다.
not @deprecated
Scenario: 새로운 기능 테스트
Given 사용자가 새로운 기능을 사용할 수 있는 페이지에 접속한다.
When 새로운 기능을 사용하여 작업을 수행한다.
Then 작업이 정상적으로 완료되었음을 확인한다.
위의 예시에서는 @deprecated
태그가 지정된 테스트 시나리오를 제외한 나머지 테스트 시나리오만 실행됩니다.
정리
Java Cucumber에서 다중 태그를 사용하여 테스트 시나리오를 선택적으로 실행할 수 있습니다. 각 태그를 and
, or
, not
연산자로 결합함으로써 필요한 시나리오를 구분하고 실행할 수 있습니다. 이를 통해 테스트 수행의 유연성을 높이고 테스트 커버리지를 개선할 수 있습니다.
더 많은 정보는 Cucumber 공식 문서를 참고하시기 바랍니다.