我有一个具有分层结构的Java项目。每次提交时Hudson构建都在运行所有测试用例,以确保代码不会被新的更改破坏。但是由于运行持久性(Hibernate)层的测试用例,这可能需要相当长的时间。还有一个Sonar版本,每晚运行。
现在我正在寻找一种优化测试运行的方法。我想从Hudson构建中删除持久层测试,只在Sonar中运行它。现在它应该有两个不同的测试套件(配置文件)。
任何建议都非常感谢。
答案 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
分隔测试并仅运行某些类别的测试。
有关详细信息,请参阅以下链接:
How to run categories in Maven (scroll down some until the "Using JUnit Categories" section)
答案 2 :(得分:1)
我认为你想分成两个测试阶段:
单元测试由Surefire插件运行,集成测试由Failsafe
运行这些运行在maven标准构建生命周期的不同阶段,因此您可以将集成测试设置为仅在SONAR构建上运行。