我们正在 Jenkins
上使用 Gradle
运行 TestNG
测试。
工作配置:
构建部分 -> 调用 Gradle 脚本 -> 使用 Gradle Wrapper -> 任务:
clean test -Dgroups=myTestNGTestGroupName
在 Jenkins
控制台输出中,我可以看到使用特定参数执行 gradlew.bat
的日志(其中之一是 -Dgroups=myTestNGTestGroupName
)).
我们有很多 Jenkins
作业和自动化 Selenium
测试。
因为我们每天只检查失败的作业。
在重构测试期间,TestNG
组名可能会更改或出现拼写错误。
如果您更改了测试存储库中的测试组名称并忘记更新 Jenkins
作业:
0 测试已执行且作业仍在通过(构建成功)。
如果没有执行任何测试,我如何告诉 Jenkins
将构建标记为不成功?
最佳答案
TestNG
每次测试运行后生成testng-results.xml
文件
(即使执行了 0 个测试)。
我们可以分析这个文件。我发现最简单的解决方案是使用
Text-finder Plugin
(在我的例子中已经添加到 Jenkins
)
我在 Post-build Actions
中添加了 Jenkins Text Finder
,如下所示:
它在 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
关于java - 如果没有运行测试,如何使 Jenkins 构建失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34276507/