我如何才能使Jenkins构建仅针对特定测试而失败?

时间:2018-11-28 16:30:46

标签: jenkins

我有一个具有单元测试和集成测试的应用程序。在Jenkins内部,只有单元测试被调用,如果其中任何一个失败,构建也会失败。集成测试之所以没有被调用是因为它们中的一些依赖于外部服务器,这些外部服务器在新构建时可能会脱机,从而使构建失败。是否可以在Jenkins上运行这些测试而不会导致构建失败?如果是这样,我应该如何配置它?

只需说明一下,预期的行为是:

  • 构建应用
  • 运行单元测试
    • 构建失败(如果任何单元测试失败)
  • 运行集成测试
  • 建立成功

2 个答案:

答案 0 :(得分:1)

如果您使用管道,则可以使用try-catch块:

node {
    stage('Unit') {
        // run unit tests
    }

    stage('Integration') {
        try {
            // run integration tests
        } catch (e) {
            // ignore
        } finally {
            // archive test results
        }
    }

}

答案 1 :(得分:0)

一种非常简单的方法是在依赖外部服务器的测试末尾添加“ exit 0”。

例如,您可以使用unix shell脚本编写:

#!/ bin / bash

#如果远程检查失败,则以rc = 0退出

./ my_remote_server_check1 ||退出0