我有一个JUnit 4测试套件,它具有BeforeClass和AfterClass方法,用于为以下测试类进行设置/拆卸。 我需要的是由他们自己运行测试类,但为此我需要为每个测试类设置/拆卸场景(BeforeClass和AfterClass或类似的东西)。问题是,当我运行套件时,我不想在每个测试课前后执行setup/teardown,我只想执行测试套件中的setup/teardown(一次)。 这可能吗?提前致谢。Junit 4测试套件和单个测试类
6
A
回答
4
我不知道任何标准的方式来与JUnit做到这一点。正如你可能已经知道的那样,它的原因是你的测试用例应该彼此独立运行。这涉及在每种测试方法之前和之后运行的“正常”设置/拆卸方法。课堂设置和拆解虽然有点不同 - 尽管我仍然更喜欢独立运行测试并且避开麻烦区域。然而,如果你真的确信自己在做什么,你可以使用全局标志来表示是否运行类设置/拆卸,并在类设置/拆卸方法中检查其状态。在你的测试套件中,你可以包含一个特殊的类作为第一个类,它只是执行设置并设置全局标志来向真实的测试用例表明它们的类设置/拆卸方法不能运行。同样,套件中特殊的最后一个类可以执行拆卸代码。需要注意的是,我担心JUnit不能保证套件内测试类的执行顺序,尽管它很可能会按照指定的顺序执行它们 - 但这只是一个实现细节。试试看,它可能适用于你 - 但不能保证它会始终按照你的期望做。
3
如果您有jUnit 4.7+,我建议您查看称为规则的新功能(在this blog post中进行了说明)。他们可能不是你想要的,但他们可能是你用jUnit得到的最好的。
假设TestNG有更好的测试分组的可能性,但我还没有真正考虑过它自己呢。
0
不,在JUnit中没有标准的方法来做到这一点,尽管你可以像PéterTörök建议的那样攻击一些东西。
但请注意,您或多或少会滥用JUnit来执行此操作。整个单元测试它是彼此独立的。这是因为测试之间的依赖关系会产生一个完整的维护噩梦(测试失败,因为按错误顺序运行)。
所以我建议你认真考虑,如果它是不是更好,只是始终运行安装...
相关问题
- 1. 如何将JUnit 4测试添加到JUnit 3测试套件
- 2. JUnit 4测试套件问题
- 3. 创建JUnit测试套装时不会出现JUnit测试类
- 4. JUnit套件合同测试
- 5. 关于JUnit测试套件
- 6. 如何获得测试集合在一个JUnit 4测试套件
- 7. 从另一个JUnit测试类运行JUnit测试类
- 8. JUnit测试套件和Ant构建“ClassNotFoundException”
- 9. JUnit和Clojure单元测试
- 10. Android类JUnit测试
- 11. Maven JUnit测试用例测试类NoClassDefFoundException
- 12. 从测试套件发送参数到junit中的测试用例4
- 13. 如何在JUnit 4中动态地添加测试到测试套件?
- 14. JUnit测试(正面和负面测试)
- 15. 如何测试junit测试
- 16. Maven.surefire.util.SurefireReflectionException当测试Junit测试
- 17. 如何在JUnit 4测试类中运行单个方法?
- 18. 在测试套件中忽略通过@ExcludeCategory的junit测试
- 19. 过滤junit测试套件时未找到测试
- 20. 删除多余的JUnit测试套件测试
- 21. 0.0%测试Coverage - Sonar maven-surefire-plugin JUnit测试套件集成
- 22. Junit测试:测试多个异常
- 23. JUnit测试套件 - 仅包含特定测试,而不是每个类中的测试?
- 24. 使用Maven运行JUnit测试套件
- 25. 倾听JUnit测试套件失败
- 26. JUnit应用程序套件测试
- 27. Selenium 2的JUnit测试套件
- 28. 为什么使用JUnit测试套件?
- 29. 使用PowerMockRunner与Junit测试套件
- 30. 运行JUnit测试套件在Eclipse
感谢您的回答,我居然想到了这一点,但我想也许有一个更好的解决方案。我想做什么的原因是因为安装程序清理环境并重置数据库,所以需要一些时间,这就是为什么我不想运行每个测试类的设置,但我需要当我运行个人测试。 – Hypnus 2010-02-22 11:38:11