2016-08-22 5 views
3

자바 스프링 오, 어떻게 시나리오를 계속할 수 있으며 실패시 중단하지 마세요. 지형지 물 파일을 실행할 때, 시나리오가 실패하면 다른 모든 시나리오는 무시되며 원하는 동작이 아닙니다. assertionError를 사용하고 싶지 않습니다. 시나리오를 실행하고 싶습니다. 성공하면 로그에 기록하고, 그렇지 않으면 실패로 기록합니다.자바 오이, 실패시 계속하는 방법

예 : 테스트하려는 불안정한 모듈, 100 개의 테스트를 실행하고 99 개의 테스트가 통과되면 내 요구에 응답합니다. 하지만 첫 번째 장면이 실패했다고 말하면 100 점 만점에 통과 할 수 있는데 이는 나에게 좋지 않습니다.

+0

다음 테스트가 안정적 일 것이라고 확신합니까? 제 말은 무언가 처음부터 실패했을 때입니다. 그런 다음이 문제는 다음 테스트에 전파 될 수 있습니다. 그렇지 않다면. 그럼 별도의 시나리오를 만들어야할까요? http://stackoverflow.com/questions/15298521/continue-running-cucumber-steps-after-a-failure – Sarseth

+0

많은 시나리오를 테스트 할 수 있도록 테스트를 만들고 있지만 테스트를 무시하고 싶지는 않습니다. 실패, 나는 계속 무시하고 오히려 무시한다. – MichaelK

+0

나는 당신의 문제를 정확하게 이해하고 있는지 잘 모르겠습니다. 일반적으로 1 시나리오 (1 테스트)가 실패하면 다른 시나리오는 여전히 오이에서 실행됩니다. 그게 아니라고 말하는거야? 아마 우리에게 약간의 코드를 보여 주시겠습니까? – SirLenz0rlot

답변

0

짧은 대답 : 아니오.

'테스트'는 오이가 '걸음'을 의미하는 것입니다.

오이 하나의 시나리오가 실패하면 다른 시나리오를 무시하지 않지만 현재 시나리오를 중단합니다.

어쨌든 나는 이 무엇을 원하는지 정확하게 생각할 수 있습니다..

시나리오는 소프트웨어를 통한 경로를 지정합니다. 더 이상 그 길을 걷지 않으면 (실패한 단계) 그 길을 따라 가려는 것이 합리적이지 않습니다.

eclipses와 같은 '일반'도구 Junit runner는 단계를 테스트로 표시하여이 모양을 약간 이상하게 만들 수 있으므로 나머지 단계를 건너 뛴 테스트로 표시 할 수 있습니다. 그러나 steps! = 테스트.

0

시나리오의 모든 단계가 실행되도록하려면 junit에서와 같이 ErrorCollector 클래스와 같은 것을 사용해야합니다. 그러나 이것 만이 AssertionError를 돌볼 것이며 당신은 단계들을 건너 뛰게 될 것입니다.

불행히도 오이 주자가 인식하지 못하는 @Rules 주석으로 구현됩니다. 수동으로 인스턴스를 생성하고 verify 메소드를 호출해야합니다. checkThat() 메소드를 사용하여 수행하려는 각 명제를 추가하십시오. 시나리오의 마지막 단계에서 verify() 메소드를 호출하십시오.