执行 setup() 一次解决方法导致 TestSuit 失败
我有 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)时,它失败了,因为 init我在 xxxxxTest.java 中提供的 setup() 没有被执行。
有什么建议吗?
更新
我在 JUnit 4 中尝试了 @BeforeClass 。但是,它没有帮助,因为在我的 ssetUp() 方法中,我启动了一个嵌入式 Jetty 服务器 (server.start()),该服务器可以正常工作我发布的代码,但是当我对 @BeforeClass 执行相同操作时,它不起作用。
I have 2 files:
xxxxxTest.java
[refer this]
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;
}
}
So, my individual test(xxxxxTest.java) works fine, exactly as I want.When i run my test suite (AllTests.java), it fails, because the init in setup() i provided in xxxxxTest.java are not being executed.
Any suggestions?
UPDATE
I tried @BeforeClass in JUnit 4. But, it didn't help because in my ssetUp() method, I start an embedded Jetty server (server.start()), the server works fine with the code I posted, but when I do the same with @BeforeClass, it does not work.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在极少数情况下,我在使用 JUnit3 时也会使用 static。
在您的情况下:
In rare cases I also hacked around with static when using JUnit3.
In your case:
与 manuel 的观点类似:您需要使用 JUnit 3 吗?那么类级静态初始化器可能是您最好的选择。
否则,我建议使用 JUnit 4,它的构造可能会喜欢:
Similar to manuel's point: do you -need- to use JUnit 3? Then a class-level static{} initializer might be your best bet.
Otherwise, I recommend using JUnit 4, which has a construct which would might enjoy: