【问题标题】:How to fail Jenkins build if no tests were run?如果没有运行测试,如何使 Jenkins 构建失败?
【发布时间】:2016-03-20 11:49:54
【问题描述】:

我们正在使用GradleJenkins 上运行TestNG 测试。

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

clean test -Dgroups=myTestNGTestGroupName

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

我们有很多 Jenkins 工作和自动化 Selenium 测试。
从那以后,我们每天只检查失败的工作。

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

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

【问题讨论】:

    标签: java selenium jenkins gradle testng


    【解决方案1】:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      • 2013-12-01
      • 1970-01-01
      相关资源
      最近更新 更多