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

dre*_*ets 5 java testng selenium gradle jenkins

我们正在TestNG使用Gradleon 运行测试Jenkins.

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

clean test -Dgroups=myTestNGTestGroupName
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

dre*_*ets 2

TestNGtestng-results.xml每次测试运行后都会生成文件
(即使执行了 0 次测试)。

我们可以分析这个文件。我发现的最简单的解决方案是使用 文本查找器插件
(在我的例子中已经添加到Jenkins

我添加Jenkins Text Finder如下Post-build Actions文本查找器插件

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
Run Code Online (Sandbox Code Playgroud)