我在哈德森建造了一堆Maven项目,Sonar坐在旁边。 Sonar给了我Sonar统计数据,FindBugs统计数据和代码覆盖率。
我注意到无论是否使用Sonar或者我是否直接使用EMMA,整个构建周期都会运行两次。这包括init(在我的情况下,重新初始化数据库 - - 昂贵的)和单元测试(几百 - 也很昂贵)。
我该怎样防止这种情况?我做了很多阅读,看起来这是由于代码覆盖插件的设计 - 将未经检测的类与已经检测的类分开。
我尝试了以下配置:
答案 0 :(得分:1)
声纳documentation建议分两个阶段运行声纳插件: -
mvn clean install -Dtest = false -DfailIfNoTests = false
mvn声纳:声纳
测试在第一阶段被绕过,并在第二阶段隐含地进行。
一行替代方案是运行以下命令: -
mvn clean install sonar:sonar -Dmaven.test.failure.ignore=true
但这将运行测试两次 - 正如您所发现的那样。
答案 1 :(得分:1)
要添加@ Strawberry的答案,您可以重复使用单元测试报告,而不是再次运行它们。请参阅sonar documentation
中的重用现有单元测试报告部分完成此操作后,您可以在Hudson中配置以下内容
clean deploy sonar:sonar