7

我使用 Jenkins 在 web appilcation 上运行一些集成测试(使用 cucumber、capybara 和 selenium)

每次测试失败时,都会保存屏幕截图、HTML 源代码和过程视频。

路径结构如下所示:

results/output/<test_name>/<files>

我使用 Jenkins 的存档工件功能来提供文件(模式:)results/output/*/*。它工作得很好。

但是,一旦构建成功,就没有屏幕截图/视频等......并且构建失败,因为 Jenkins 找不到该模式的文件。

有没有办法告诉詹金斯在没有文件的情况下成功?

我不想做一个肮脏的黑客,涉及创建一个空文件夹结构,如 result/output/success/hooray.txt。

4

2 回答 2

13

有一个未解决的问题:https ://issues.jenkins-ci.org/browse/JENKINS-10502

行为由系统属性控制hudson.tasks.ArtifactArchiver.warnOnEmpty,如https://wiki.jenkins-ci.org/display/JENKINS/Features+controlled+by+system+properties中所述

于 2012-03-21T13:06:06.323 回答
4

我在我们的几个项目中遇到了类似的问题。我们有两种不同的方法来解决它(在两个不同的版本上)。

1) 在构建步骤中添加了一个命令,如果不存在任何文件,则该命令会创建一个虚假的临时文件。

在这种情况下,它旨在收集测试失败时将生成的 output.pdf 文件。我添加了一个构建步骤,如果该文件不存在,我们将创建一个“missing.pdf”文件。然后我作为工件收集的是给定目录中的“* .pdf”。这似乎效果很好。

2) 在另一个构建中,我们需要使用 glob 收集一组文件。

我们在这里所做的就是让构建步骤始终在目标区域中创建一个空文件。这样,glob 总是匹配一些东西。

这些是我们迄今为止找到的最佳解决方案。如果你找到更好的东西,我很想听听。

于 2011-12-23T14:17:59.483 回答