Java 由于单元测试的日志文件,Jenkins Maven发布失败
不幸的是,我可能在一个问题中有两个问题,或者更确切地说,解决方案可能有两种不同的方式。我在我单元测试的几个类中设置了log4j记录器。当我运行Java 由于单元测试的日志文件,Jenkins Maven发布失败,java,maven,unit-testing,logging,jenkins,Java,Maven,Unit Testing,Logging,Jenkins,不幸的是,我可能在一个问题中有两个问题,或者更确切地说,解决方案可能有两种不同的方式。我在我单元测试的几个类中设置了log4j记录器。当我运行mvn clean install时,它显然会运行这些测试,然后创建一个日志文件(该文件通常为空,因为没有记录任何令人兴奋的内容)。这不一定是个问题,只是当我执行Maven Release时,Jenkins似乎不喜欢这样。它大喊工作区有本地更改,并在声明失败之前引用日志文件 我知道这是单元测试,因为如果我将它们更改为集成测试或忽略它们,一切都会正常工作。但
mvn clean install
时,它显然会运行这些测试,然后创建一个日志文件(该文件通常为空,因为没有记录任何令人兴奋的内容)。这不一定是个问题,只是当我执行Maven Release时,Jenkins似乎不喜欢这样。它大喊工作区有本地更改,并在声明失败之前引用日志文件
我知道这是单元测试,因为如果我将它们更改为集成测试或忽略它们,一切都会正常工作。但我想要一个解决方案,而不是解决办法
詹金斯的配置是否允许我纠正这一点
或者有没有一种策略可以模拟或忽略单元测试的日志记录
我不一定要忽略它们,但这会妨碍发布。我不太清楚
Perform Maven release
的功能,但我可以建议一些解决方案:
希望这有帮助 阿米特有一些好主意,我将提出更多建议:
- 用于在项目中进行日志记录,并且在测试阶段不绑定日志记录实现
- 更好的方法是在测试阶段绑定,这会记录到内存中。然后,您还可以针对日志编写测试,以确保它在您期望的时候发生
mvn release:prepare
将成功运行。我将在下一个版本中发现这是否有效,但我在工作列表的工作区中没有看到它。好主意。