현재 문제가 있습니다. 나는이 개 클래스를 생성, 하나는 추상적이고, 다른 하나는 첫 번째에서 상속 :Eclipse에서 TestNG 상속 동작 대 Jenkins
public abstract class A {
@BeforeClass
protected void setUp() {
Object o = new Object();
}
@AfterClass
protected void tearDown() {
o = null;
}
@Test
public void T1() {
// whatever is done here
}
@Test(dependsOnMethod={"T1"})
public void T2() {
// whatever is done here
}
}
@Test(singleThreaded=true)
public class B extends A {
@Test(dependsOnMethod={"T2"})
public void T3() {
System.out.println(o.toString());
}
}
는 사실, 이클립스 & 젠킨스 사이에 2 개 개의 다른 행동을 얻었다. 이클립스에서 내 테스트를 실행하면
, 실행 순서는 다음과 같습니다
setUp()
T1()
T2()
T3()
tearDown()
그러나 젠킨스에서, 실행 순서는 다음과 같습니다 결과
setUp()
T1()
T2()
tearDown()
T3()
, 두 번째 경우에, T3() 메소드에 의해 Object o가 파기되었으므로 NullPointerException으로 인해 분명히 실패합니다. TestNG는 testng.xml 파일을 지정하여 maven-surefire-plugin을 사용하여 Jenkins에 의해 호출됩니다. 여기있다 : 모두 젠킨스 & 이클립스 같은 동작을 만들 수있는 방법은
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="TestSuite" parallel="classes" thread-count="1" verbose="1">
<test name="Test B">
<classes>
<class name="main.pkg.B" />
</classes>
</test>
</suite>
있습니까? 그렇다면 모든 도움을 주시면 감사하겠습니다.
감사합니다,
세드릭
이름을 setUpBeforeClass와 같은 것으로 변경하고 어떤 일이 발생하는지 확인하십시오. –