我们的测试套件经常中断,因为我们针对不在我们控制范围内的外部服务运行了大量集成测试。当这些外部服务面临服务中断时,我们的构建开始失败。
有没有办法可以暂时忽略Jenkins中的测试(在外部服务中断期间),这样看起来整个版本并没有被破坏,实际上并不是这样。
答案 0 :(得分:2)
是的,Jenkins Quarantine Plugin允许用户暂时隔离测试。我和你一样处于同样的境地,这个插件肯定是一个救生员!
但项目并未真正得到维护。正如您所看到的,它的构建状态今天是“失败”,可能是由于最近的Jenkins API更改。
但是,该插件一直运行良好,具有以下配置:
从SHA 2c8393d4c21106c4e4f7f3868e8fc19509aee884构建的隔离插件如下:
git clone https://github.com/samsta/quarantine.git && cd quarantine
git checkout 2c8393d4c21106c4e4f7f3868e8fc19509aee884
mvn clean install
我相信你能找到办法让它发挥作用,所以我希望你能试一试!
答案 1 :(得分:1)
您可以将其拆分为较小的块并触发下一个作业,即使其中一些作业失败也是如此。
另一种方法是,以总是返回0的方式重新配置测试,但是如果发生故障,它们会设置一些环境标志。然后,您可以使用Conditional Buildstep Plugin,并查看是否设置了此标志,并根据不同测试中的标志,您可以评估作业在作业结束时是成功还是失败。
答案 2 :(得分:0)
您可以考虑使用服务虚拟化工具来模拟服务的响应。这样,您就可以解除对运行测试时无法控制的服务的依赖性。