2017-10-18 1 views
3

내 프로젝트에는 두 가지 오이 테스트가 있고 각각 다른 스프링 컨텍스트 구성이 필요합니다.Intellij, 오이 테스트 및 두 개의 스프링 컨텍스트 구성

내가 가지고있는 문제는 Intellij에서 개별적으로 각 테스트를 실행할 때 적절한 스프링 컨텍스트를로드하고 테스트가 통과하지만 모든 테스트를 실행하면 아무 것도 통과하지 않는다는 것입니다.

메이븐 테스트를 실행하면 두 테스트가 모두 통과합니다.

@RunWith(FCSCucumber.class) 
 
@Cucumber.Options(strict = true 
 
//  , tags = {"[email protected]"} 
 
//  , tags = {"@Only"} 
 
     , glue ="feature.scenario1" 
 
     , features = "src/test/resources/feature/scenario1/" 
 
) 
 
@FCSApplicationProperties(commonProps="config/scenario1/exec.common.properties", 
 
     environmentProps="src/test/resources/scenario1-test.properties") 
 
public class TesScenario1Features { 
 
\t 
 
}

@ContextConfiguration("/cucumber-scenario1.xml") 
 
public class scenario1Steps { 
 
...... 
 
}

@RunWith(FCSCucumber.class) 
 
@Cucumber.Options(strict = true 
 
//  , tags = {"[email protected]"} 
 
//  , tags = {"@Only"} 
 
     , glue ="feature.scenario2" 
 
     , features = "src/test/resources/feature/scenario2/" 
 
) 
 
@FCSApplicationProperties(commonProps="config/scenario2/exec.common.properties", 
 
     environmentProps="src/test/resources/scenario2-test.properties") 
 
public class TesScenario2Features { 
 
\t 
 
}

:

내 코드입니다

@ContextConfiguration("/cucumber-scenario2.xml") 
 
public class scenario2Steps { 
 
...... 
 
}
은 모두의 JUnit 러너를 사용하지 않고, 당신의 도움이

답변

1

문제가 IntelliJ cucumber plugin이 테스트를 실행하기 위해 cucumber cli을 사용하고 있다는 점이다 주셔서 대단히 감사합니다. 이로 인해 러너 대신 단계 정의 클래스에서 스프링 주석을 요구하거나 기본적으로 단계 정의가 시나리오 파일과 동일한 패키지에 있어야하는 등 몇 가지 제한이 있습니다.

올바른 응용 프로그램 속성도 /cucumber-scenario{1,2}.xml 파일에 의해 참조되지 않는 한, 실제로 단일 테스트를 실행해도 실패 할 것으로 예상됩니다.

표준 오이 구현에서 볼 수있는 유일한 옵션은 별도의 프로젝트로 테스트를 추출하는 것입니다.

저는 실제로 시도하고 싶은 향상된 스프링 통합을 사용하여 alternative implementation of cucumber에서 작업하고 있습니다. IntelliJ와 완전히 통합되지는 않았습니다.

관련 문제