JUnit 5与TestNG的比较

25

我们之前使用JUnit 4,但是在测试分组方面遇到了一些问题。在集成测试方面,我们有运行顺序的问题。我们于2016年2月迁移到了TestNG

现在我们正在为项目启动一个新的独立模块,我们团队中的一部分人希望使用JUnit 5。我相信它比4要好得多(有一些新的重要功能),但我也看到了一些问题。

我不想使用JUnit 5,因为我担心在我们的新应用程序中可能会出现问题,因为我有使用4的经验。但我必须更加灵活地考虑团队的需求,在做出决定之前,我需要听取有使用JUnit 5经验的用户的建议。


6
JUnit5还没有完全适用于生产环境,并且最低只支持Java8。 - juherr
@JulienHerr,是的。它还使用解决方法以与_junit4_兼容的方式运行。 - Sergii
2
@JulienHerr IDEA已经支持JUnit 5。请参见 https://blog.jetbrains.com/idea/2016/08/using-junit-5-in-intellij-idea/ - NamshubWriter
TestNG 是否提供您所需的一切?如果是的话,请坚持使用它。JUnit 5仍然处于“正在进行中”的状态,尚不支持JUnit 4的某些功能。 - Alexei Osipov
是的,我认为它可以。但我不关心测试框架,我们已经开始了新项目,只使用单元测试,对于集成测试,我们使用单独的项目。这解决了我们的问题。 - Sergii
显示剩余2条评论
2个回答

11

TestNG的目标不仅仅局限于单元测试,它还可覆盖更广泛的测试需求,如场景测试、集成测试、依赖性测试、排序、并行执行等。但是这些特性在JUnit 5中并不被支持。

JUnit 5团队已经在其路线图中考虑到了上述项目,但他们正在扩展一个单元测试框架以支持更广泛的测试需求。让我们看看新的Junit 5版本如何与TestNG相比解决更广泛的测试需求。

对于基于Spring的应用程序来说,JUnit最适合进行单元测试和集成测试,因为它是默认的测试框架,而Spring提供了许多带有Mockito的测试API。

对于一般测试和Web自动化(Selenium)- TestNG是事实上的选择。


10

JUnit 5引入了许多新功能,目前Intellij IDEA支持JUnit 5。

查看有关集成的文章:在IntelliJ IDEA中使用JUnit 5

现在有一些有用的注释,例如:

  • @Tag 用于声明标签以筛选测试,可以在类或方法级别上使用;类似于TestNG中的测试组或JUnit 4中的类别

  • @DisplayName 为测试类或测试方法声明自定义显示名称

了解更多信息:JUnit 5用户指南


此外,Eclipse 4.7 Oxygen现在通过JUnit 5 Support (BETA) for Oxygen 4.7插件支持JUnit 5,该插件可以在市场中安装。 - Phoenix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接