Junit 4测试套件和个人测试课程

我有一个带有BeforeClass和AfterClass方法的JUnit 4测试套件,可以为以下测试类进行设置/拆卸。 我需要的是由他们自己运行测试类,但为此我需要为每个测试类设置/拆卸场景(BeforeClass和AfterClass或类似的东西)。 问题是,当我运行套件时,我不想在每个测试课前后执行setup / teardown,我只想执行测试套件中的setup / teardown(一次)。 可能吗 ? 提前致谢。


我不知道任何使用JUnit执行此操作的标准方法。 正如你可能已经知道的那样,它的原因是你的测试用例应该彼此独立运行。 这涉及在每种测试方法之前和之后运行的“正常”设置/拆卸方法。 课堂设置和拆解虽然有点不同 - 尽管我仍然更喜欢独立运行测试并且避开麻烦区域。

但是,如果您确信自己在做什么,则可以使用全局标志来指示是否运行类设置/拆卸,并在类设置/拆卸方法中检查其状态。 在你的测试套件中,你可以包含一个特殊的类作为第一个类,它只是执行设置并设置全局标志来向真实的测试用例表明它们的类设置/拆卸方法不能运行。 同样,套件中特殊的最后一个类可以执行拆卸代码。 需要注意的是,我担心JUnit不能保证套件内测试类的执行顺序,尽管它很可能会按照指定的顺序执行它们 - 但这只是一个实现细节。 试试看,它可能适用于你 - 但不能保证它会始终按照你的期望做。


如果您有jUnit 4.7+,我建议您查看称为规则的新功能(在本博客文章中对此进行了解释)。 他们可能不是你想要的,但他们可能是你用jUnit得到的最好的。

假设TestNG具有更好的测试分组可能性,但我还没有真正考虑过它。


不,在JUnit中没有标准的方法来做到这一点,尽管你可以像PéterTörök建议的那样攻击一些东西。

但请注意,您在做这件事情时或多或少地滥用JUnit。 整个单元测试它是相互独立的。 这是因为测试之间的依赖关系会产生一个完整的维护噩梦(测试失败,因为按错误顺序运行)。

所以我建议你强烈考虑一下,如果总是运行安装程序并不是更好。

链接地址: http://www.djcxy.com/p/64095.html

上一篇: Junit 4 test suite and individual test classes

下一篇: Bad form for JUnit test to throw exception?