如何配置JUnit测试套件?

时间:2014-04-08 15:04:00

标签: java junit hudson automated-tests sonarqube

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

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

任何建议都非常感谢。

3 个答案:

答案 0 :(得分:1)

似乎您希望使用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

答案 1 :(得分:1)

如果您使用的是Junit 4.8或更高版本,则可以使用JUnit Categories分隔测试并仅运行某些类别的测试。

有关详细信息,请参阅以下链接:

JUnit Categories JavaDoc

Blog tutorial

How to run categories in Maven (scroll down some until the "Using JUnit Categories" section)

答案 2 :(得分:1)

我认为你想分成两个测试阶段:

  • 单位,用于快速运行的测试
  • 集成,适用于Hibernate风格较慢的。

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

运行

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