我有一个JUnit测试套件形式:停止JUnit的套房,如果特定的测试失败
@RunWith(Suite.class)
@Suite.SuiteClasses({ xx.class, yy.cass })
public class AllTests {
public static Test suite() {
TestSuite suite = new TestSuite(AllTests.class.getName());
//$JUnit-BEGIN$
//$JUnit-END$
return suite;
}
}
这就要求香草测试是这样的:
public class xxx {
@Test
public void test() throws {
...
我有一个情况我会如果在第一次测试中出现错误或失败时停止运行测试套件的其余部分。但其他人的错误/失败是可以的,套件应该完成尽可能多的其他测试。基本上第一次测试失败会表明其余运行并不安全。
这可能吗?
我将如何编程方式检查如果断言失败? – Jonathan 2012-04-05 23:23:40
好吧,我看到我可以在第一次测试中捕获AssertionError,然后调用System.exit(),但是JUnit测试不会通过或失败,只是停止运行。似乎应该有一个更优雅的方式。 – Jonathan 2012-04-05 23:34:03
回复:更优雅的方式,我不相信JUnit提供此功能的开箱即用。它可以导致测试之间的耦合。理想情况下,您的测试应该彼此独立运行,不会受到其他故障的影响。如果你坚持,那么Hiro2k的建议是最好的。 – 2012-04-06 00:12:17