2011-06-21 27 views
5

我在Jenkins每周晚上都有一份工作。在此构建过程中执行的任务是:编译,单元测试,集成测试(只有JUnit测试比执行的“实际单元测试”更长)以及Sonar质量分析。为什么我的Sonar Jenkins工作从未变得不稳定,即使在测试失败的情况下?

当测试失败时,作业会被视为成功,因此不会发送电子邮件来通知此故障。

使用的Maven命令是mvn clean install sonar:sonar。删除install目标不会改变任何内容。

那有什么问题?

有没有办法在只有一个Jenkins作业时获得预期的行为(即在测试失败时具有不稳定的构建),还是应该创建两个作业,一个用于整个“Java部分”(编译,单元测试和集成测试),还有一个用于Sonar分析?

我们使用的是Maven 2.0.9,Java 1.6,Sonar 2.8,Jenkins 1.413。

+0

您是否在任何地方定义-Dmaven.test.failure.ignore = true? – oers

+0

@oers一点也不。确切的Maven命令是'mvn -U -up -e clean install -Dsonar.branch = XXX --settings C:\ xxx \ jenkins-setting.xml' – romaintaz

+0

Jenkins似乎设置了这个属性:http://stackoverflow.com/questions/1004912/hudson-build-successful-with-unit-test-failures – oers

回答

0

詹金斯似乎设置属性:Hudson build successful with unit test failures

随着属性(-Dmaven.test.failure.ignore =假),当存在一个测试失败,则生成停止。

有用于声纳jenkins plugin: 这似乎来分析,即使试验失败:http://jira.codehaus.org/browse/SONARPLUGINS-461

在我的声纳安装,我跑声纳单独测试和重复使用JUnit的/万无一失报告。这样我就可以独立于声纳控制测试。

+0

我确实不确定我只能有一个Jenkins的工作去做任何事情。将'-Dmaven.test.failure.ignore'属性设置为'false'不会对我有所帮助,因为它会停止编译和测试第一个带有错误的模块。而当我正在使用多模块项目,它不会在其他模块上工作... – romaintaz

+1

我终于成功地使用Sonar Jenkins插件(Maven 2.0.9和这个插件有一个错误,它忽略了我的'' - -settings'参数),现在Jenkins正确处理状态。 – romaintaz

相关问题