如何配置JUnit测试套件



我有一个Java项目,它具有分层结构。每次提交时,Hudson构建都会与所有测试用例一起运行,以确保代码不会被新的更改破坏。但由于正在运行持久性(Hibernate)层的测试用例,这可能需要相当长的时间。此外,还有一个声纳建造,每天晚上运行。

现在我正在寻找一种优化测试运行的方法。我想从Hudson构建中删除持久层测试,只在Sonar中运行它。现在它应该有两个不同的测试套件(概要文件)。

非常感谢任何建议。

似乎您希望使用JUnit类别-https://weblogs.java.net/blog/johnsmart/archive/2010/04/25/grouping-tests-using-junit-categories-0

然后,您可以将构建服务器配置为在不同时间运行特定类别

更多信息请点击此处-https://github.com/junit-team/junit/wiki/Categories

我认为您需要分为两个测试阶段:

  • 单元,用于快速运行的测试
  • 集成,对于Hibernate风格较慢的

单元测试由Surefire插件运行,集成测试由Failsafe 运行

这些测试在maven标准构建生命周期的不同阶段运行,因此您可以将集成测试设置为仅在SONAR构建上运行。

如果您使用的是Junit 4.8或更高版本,则可以使用Junit Categories来分离测试,并仅运行特定类别的测试。

有关更多信息,请参阅:

  • junit团队GitHub存储库上的Wiki页面:junit4,Categories
  • DZone教程:更深入地了解JUnit类别
  • Maven Surefire插件指南:使用JUnit类别

最新更新