我有 2 个文件:
xxxxxTest.java [参考这个]
public class xxxxxTest extends TestCase {
// Run setup only once
public static Test suite() {
TestSetup setup = new TestSetup(new TestSuite(xxxxxTest.class)) {
protected void setUp() throws Exception {
//Some init which i need only once
}
protected void tearDown() throws Exception {
}
};
return setup;
}
public void testMyFirstMethodTest() {
assertNotNull(do stuff here);
}
}
AllTests.java
public class AllTests {
public static Test suite() {
TestSuite suite = new TestSuite("Test for xxxxxx");
//$JUnit-BEGIN$
suite.addTestSuite(xxxxxTest.class);
//$JUnit-END$
return suite;
}
}
所以,我的个人测试(xxxxxTest.java)工作正常,完全符合我的要求。当我运行我的测试套件(AllTests.java)时,它失败了,因为我在 xxxxxTest.java 中提供的 setup() 中的 init 没有被执行.
有什么建议么?
更新
我在 JUnit 4 中尝试了@BeforeClass。但是,它没有帮助,因为在我的 ssetUp() 方法中,我启动了一个嵌入式 Jetty 服务器 (server.start()),该服务器与我发布的代码一起工作正常,但是当我对@BeforeClass 做同样的事情,它不起作用。