我使用Jenkins在网络应用程序上运行一些集成测试(使用 cucumber , capybara 和 Selenium )
每次测试失败时,都会保存屏幕截图,HTML源和该过程的视频。
路径结构如下所示:
results/output/<test_name>/<files>
我使用Jenkins的存档工件功能来提供文件(模式:
results/output/*/*
)。效果很好。但是,一旦构建成功,就没有屏幕截图/视频等...,并且构建失败,因为Jenkins找不到该模式的文件。
是否可以告诉Jenkins在不存在文件的情况下取得成功?
我不想做一个肮脏的黑客,涉及创建一个空的文件夹结构,如result/output/success/hooray.txt。
最佳答案
在我们的几个项目中,我遇到了类似的问题。我们有两种不同的解决方法(在两个不同的版本上)。
1)在构建步骤中添加了一个命令,如果尚不存在伪文件,则该命令将创建伪造的临时文件。
在这种情况下,本意是收集如果测试失败将生成的output.pdf文件。我添加了一个构建步骤,如果该文件不存在,我们将创建一个“missing.pdf”文件。然后,我从给定目录中收集的是“* .pdf”作为工件。这似乎工作得很好。
2)在另一个构建中,我们需要使用glob收集一组文件。
我们在这里所做的一切如此,因此构建步骤始终在目标区域中创建一个空文件。这样,全局始终匹配某些内容。
这些是迄今为止我们找到的最好的解决方案。如果您发现更好的东西,我很想听听。
关于continuous-integration - 当没有工件时,Jenkins Build失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8617029/