예, 테스트 스위트에서 테스트 전후에 설정 및 해체 메소드를 안정적으로 실행할 수 있습니다. 코드로 보여 드리겠습니다.
package com.test;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({Test1.class, Test2.class})
public class TestSuite {
@BeforeClass
public static void setUp() {
System.out.println("setting up");
}
@AfterClass
public static void tearDown() {
System.out.println("tearing down");
}
}
따라서 Test1
수업은 다음과 같습니다.
package com.test;
import org.junit.Test;
public class Test1 {
@Test
public void test1() {
System.out.println("test1");
}
}
... 그리고 Test2
비슷해 보이는 것을 상상할 수 있습니다 . 를 실행 TestSuite
하면 다음을 얻을 수 있습니다.
setting up
test1
test2
tearing down
따라서 설정 / 해체가 각각 모든 테스트 전후에만 실행되는 것을 볼 수 있습니다.
캐치 : 이것은 테스트 스위트를 실행하고 개별 JUnit 테스트로 Test1 및 Test2를 실행하지 않는 경우에만 작동합니다. 당신이 maven을 사용하고 있다고 언급했고 maven surefire 플러그인은 스위트의 일부가 아닌 개별적으로 테스트를 실행하는 것을 좋아합니다. 이 경우 각 테스트 클래스가 확장하는 수퍼 클래스를 만드는 것이 좋습니다. 그런 다음 수퍼 클래스에는 주석이 달린 @BeforeClass 및 @AfterClass 메서드가 포함됩니다. 위의 방법만큼 깨끗하지는 않지만 당신에게 효과적이라고 생각합니다.
실패한 테스트의 문제는 maven.test.error.ignore를 설정하여 실패한 테스트에서 빌드가 계속되도록 할 수 있습니다. 이것은 지속적인 연습으로 권장되지는 않지만 모든 테스트를 통과 할 때까지 기능을 발휘해야합니다. 자세한 내용은 maven surefire 문서를 참조하세요 .
post-integration-test
테스트가 실패 해도 건너 뛰지 않습니다. 참조 이 위키 페이지를 .