如果没有运行测试,如何使Jenkins构建失败?

时间:2015-12-14 21:00:42

标签: java selenium jenkins gradle testng

我们正在TestNG上使用Gradle运行Jenkins次测试。

工作配置:
构建部分 - >调用Gradle脚本 - >使用Gradle Wrapper - >任务:

clean test -Dgroups=myTestNGTestGroupName

Jenkins控制台输出中,我可以看到执行gradlew.bat时带有特定参数的日志(其中一个是-Dgroups=myTestNGTestGroupName))。

我们有很多Jenkins个工作和自动化Selenium测试 因为每天我们只检查失败的工作。

在重构测试期间,TestNG组名可能会更改,或者可能会出现拼写错误 如果您更改了测试存储库中的测试组名称并忘记更新Jenkins作业:
执行 0 测试并且作业仍在传递(构建成功)。

如果没有执行任何测试,我如何告诉Jenkins将构建标记为不成功?

1 个答案:

答案 0 :(得分:2)

每次测试运行后,

TestNG都会生成testng-results.xml个文件 (即使执行了0次测试)。

我们可以分析这个文件。我发现最简单的解决方案是使用 Text-finder Plugin
(在我的情况下已添加到Jenkins

我在Jenkins Text Finder中添加了Post-build Actions,如下所示: text-finder-plugin

它在Jenkins控制台输出日志中的显示方式:

BUILD SUCCESSFUL

Total time: 42.105 secs
Build step 'Invoke Gradle script' changed build result to SUCCESS
Archiving artifacts
Checking <testng-results skipped="0" failed="0" total="0" passed="0">
c:\jenkins\workspace\my-job-name\build\reports\tests\testng-results.xml:
<testng-results skipped="0" failed="0" total="0" passed="0">
Build step 'Jenkins Text Finder' changed build result to UNSTABLE
...
Finished: UNSTABLE