由于单元测试的日志文件,Jenkins Maven发布失败

时间:2016-08-02 14:04:13

标签: java maven unit-testing logging jenkins

不幸的是,我可能会有两个问题,或者说解决方案可能有两种不同的方式。我有一些log4j记录器设置在我测试的几个类中。当我运行mvn clean install时,它显然会运行这些测试,然后创建一个日志文件(通常为空,因为没有记录任何令人兴奋的事情)。这不一定是个问题,除了Jenkins在我Perform Maven Release时似乎不喜欢这样。它对具有本地更改的工作区大吼大叫,并在声明失败之前引用了日志文件。

我知道它的单元测试,因为如果我将它们更改为集成测试或忽略它们,一切正常。但我想要一个解决方案而不是解决方法。

Jenkins中是否有配置可以解决这个问题?

或者是否存在模拟或忽略单元测试日志记录的策略?

我不一定要忽略它们,但它干扰了创建一个版本。

2 个答案:

答案 0 :(得分:2)

我不太了解Perform Maven Release的作用,但我可以提出几点解决方案:

  1. 从源代码存储库中删除日志文件(因为每次运行都会重新生成日志文件,我认为它不应该驻留在源代码存储库中)。
  2. 将违规日志文件的路径添加到版本控制忽略的文件列表中(例如,git使用名为gitignore的文件 - https://git-scm.com/docs/gitignore
  3. 希望这有帮助!

答案 1 :(得分:1)

阿米特有一些好主意,我还会提出一些建议:

  • 使用slf4j登录项目,并在测试阶段不绑定日志记录实施
  • 更好一点,在测试阶段绑定slf4j-test,然后记录到内存。然后,您还可以针对日志记录编写测试,以确保它在您期望的时候发生。