我目前遇到的问题。我创建了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的内容并查看会发生什么。 –