[java] Java Cucumber에서 다중 태그 사용하기

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 공식 문서를 참고하시기 바랍니다.