【发布时间】:2015-12-01 16:39:29
【问题描述】:
我正在使用 SBT 插件在 Jenkins 上构建一个 SBT 项目,目前它运行良好。我执行的目标是compile testQuick。这导致 Jenkins 只运行影响自上次 Git 推送以来发生变化的事情的测试。
但是,当我只重新组织构建文件中的内容或增加版本号时,这会导致无法运行任何测试,并且构建后操作“发布 JUnit 测试结果”会失败。
有没有办法将没有运行的测试视为成功?
【问题讨论】:
我正在使用 SBT 插件在 Jenkins 上构建一个 SBT 项目,目前它运行良好。我执行的目标是compile testQuick。这导致 Jenkins 只运行影响自上次 Git 推送以来发生变化的事情的测试。
但是,当我只重新组织构建文件中的内容或增加版本号时,这会导致无法运行任何测试,并且构建后操作“发布 JUnit 测试结果”会失败。
有没有办法将没有运行的测试视为成功?
【问题讨论】:
不是真正的解决方案,而是临时的解决方法,直到有人想出更好的主意:
我创建了一个“虚拟测试结果文件”dummyresult.xml,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
<testsuite name="DummyResultSoBuildDoesNotFail" errors="0" tests="0" failures="0" time="0" timestamp="2013-05-24T10:23:58" />
<testsuite name="DummyResultSoBuildDoesNotFail.constructor" errors="0" skipped="1" tests="1" failures="0" time="0.006" timestamp="2013-05-24T10:23:58">
<properties>
<property name="java.vendor" value="Sun Microsystems Inc." />
<property name="compiler.debug" value="on" />
<property name="project.jdk.classpath" value="jdk.classpath.1.6" />
</properties>
<testcase classname="DummyResultSoBuildDoesNotFail.constructor" name="Dummy result, needed so result collection does not fail" time="0">
<skipped />
</testcase>
</testsuite>
</testsuites>
然后我添加了一个后期构建步骤,即“执行 shell”并执行以下操作:
mkdir -p target/test-reports && cp ~/dummyresult.xml target/test-reports
现在,即使没有运行任何测试,Jenkins 也会选择一个跳过的“虚拟测试”并且很高兴。
【讨论】: