2015-05-29 73 views
1

我们的测试套件通常会因为我们对不在我们控制范围内的外部服务进行大量集成测试而中断。当这些外部服务面临服务中断时,我们的构建开始失败。是否有可能暂时忽略詹金斯的测试?

有没有一种方法可以暂时忽略Jenkins中的测试(在外部服务中断期间),以便它看起来不像整个构建没有被破坏,实际上并不是这样。

+1

您可以将其分解为较小的作业,其中针对外部服务的集成测试各自在下游独立触发。通过这种方式,您可以在故障发生的位置获得更多的粒度。 – ypx

+1

为什么不将整个测试套件作为单独的工作来移动,以便您可以暂时禁用它?让你的工作更简单一点。 – jinggoy

回答

1

您可以将其拆分成更小的块并触发下一个作业,即使其中一些作业失败。

这样做的另一种方法是以总是返回0的方式重新配置测试,但如果发生故障,他们会设置一些环境标志。然后,您可以使用Conditional Buildstep Plugin,并查看该标志是否已设置,并根据来自不同测试的标志,您可以评估作业结束时作业是成功还是失败。

2

是的,Jenkins Quarantine Plugin允许用户临时隔离测试。我一直处于和你一样的状况,这个插件绝对是一种救命!

但是该项目没有真正维护。正如你所看到的,今天它的构建状态是“失败”,可能是由于最近Jenkins API的变化。


然而,插件已经被我用下面的配置运作良好:

  • 詹金斯1.526
  • 检疫插件从SHA 2c8393d4c21106c4e4f7f3868e8fc19509aee884内置如下:

    git clone https://github.com/samsta/quarantine.git && cd quarantine 
    git checkout 2c8393d4c21106c4e4f7f3868e8fc19509aee884 
    mvn clean install 
    

我相信你可以找到一种方法使它工作,所以我希望你会试试看!

0

您可以考虑使用服务虚拟化工具来模拟您的服务的响应。通过这种方式,您可以在运行测试时解除对无法控制的服务的依赖。