Running Tests with TestRunner

Dahun Yoo·2020년 6월 18일
0

본 내용은 cucumber-jvm을 대상으로 작성되었습니다.

자, Feature파일을 작성하고, 각 Step에 해당하는 StepDefinition 내부의 메소드를 지정해주었다면, 실행을 해야합니다.

Cucumber의 featrue파일들은 그냥 Build > Run해서는 실행되지 않고, TestRunner 라는 녀석을 만들어서 묶음지어주어야 합니다.


@CucumberOptions(features = "src/test/java/features",
                 glue = "stepDefinition" )
public class TestRunner extends AbstractTestNGCucumberTests {
}

이렇게 아무것도 없는 빈 class파일을 만들어주시고, @CucumberOptions 라는 Annotation을 선언해주세요.

Test framework로 Junit을 사용한다면 아래와 같이 @RunWith도 추가해주세요. 또한 AbstractTestNGCucumberTests 는 상속받지 않으셔도 됩니다. (TestNG전용.)

@RunWith(Cucumber.class)
@CucumberOptions(
        plugin = {"pretty", "HTML: target/cucumber"},
        features = "src/test/java/features",
        glue = "stepDefinitions"

)

@CucumberOption 에는 몇가지 지정해주어야하는 파라미터가 있습니다.

@CucumberOptions(features = "src/test/java/features" , glue = "stepDefinition"  )

feature

실행해야하는 feature파일을 지정합니다. 디렉토리만 지정해주면, 해당 디렉토리 내부에 존재하는 모든 feature파일을 실행합니다. 반대로 특정 feature파일만 실행하고자 하면, 파일명.feature 까지 지정해주면 됩니다.

glue

glue 는 StepDefinition 파일을 지정하는 파라미터 입니다. 패스의 지정은 필요 없고, 다만 TestRunner의 패키지와 같은 레벨, 같은 부모 패키지를 가지고 있어야 합니다.
(혹은 TestRunner와 같은 레벨의 디렉토리에 Step Definition파일을 생성해도 무방합니다.)

이외에도...

plugin

Cucumber 실행에 필요한 외부 플러그인을 선언합니다. 보통 많이 쓰이는게 pretty 인데요, 이것을 사용하면 콘솔창에 출력되는 테스트결과를 예쁘게 색도 입혀주고 정렬도 해줍니다.

Tags

이것을 사용하면 실행하고싶은 Tag가 달린 feature file내의 scenario만 골라골라 실행할 수 있습니다. tag는 여러개를 지정할 수 있습니다.

profile
QA Engineer

0개의 댓글