我目前遇到的問題。我創建了2類,一類是抽象的,另一種是從第一個繼承:TestNG的繼承行爲VS詹金斯
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());
}
}
其實,我的Eclipse &詹金斯2種之間不同的行爲。
當我的Eclipse下運行我的測試中,執行順序是:
setUp()
T1()
T2()
T3()
tearDown()
但詹金斯下,執行順序是:
setUp()
T1()
T2()
tearDown()
T3()
其結果是,在第二種情況下,T3 ()明顯出現故障時,由於一個NullPointerException作爲對象O已被拆卸()方法被破壞。 TestNG的被稱爲詹金斯,通過使用行家-萬無一失-插件,通過指定的testng.xml文件。那就是:
<!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>
有沒有一種方法,使雙方詹金斯& Eclipse中具有相同的行爲呢? 如果是這樣,任何幫助將不勝感激。
問候,
塞德里克
將名稱更改爲類似setUpBeforeClass的內容並查看會發生什麼。 –