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

标签 java selenium jenkins gradle testng

我们正在 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,如下所示: 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

关于java - 如果没有运行测试,如何使 Jenkins 构建失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34276507/

相关文章:

Java 错误 - 找不到符号 - 变量是

java - Maven 排除资源不起作用

java - 将txt文档预处理为以String为键、以Integer ArrayList为值的hashmap

Python、Selenium - 处理多个等待条件

java - 一堆图像的 ImageJ 亮度和对比度

java - 如何确定 WebElement 是否存在于 Selenium 中?

java - 如何执行移动鼠标和点击 Action ?

xml - 关于 Jenkins JUnit XML 格式

jenkins - BlueOcean编辑器 "scm"输入什么

java - 归档工件时发生错误