我正在尝试寻找是否有一种方法可以在测试中检测资源泄漏。与 junit 或任何其他库一起使用。
上次,我使用 junit5 @TempDir 并且我的输出流未关闭,它抛出无法删除临时文件夹。它没有列出正确的原因,我也无法在网上找到。我只是猜测,我检查了我是否关闭了我的 FileOutputStream ,就是这样。然后它开始工作。 junit也不例外。
但这不是很有用。有没有一个好方法可以在测试中查找是否有任何资源未关闭。
一般考虑静态代码分析来检测资源泄漏问题。例如,声纳有一些帮助:https://rules.sonarsource.com/java/tag/leak/RSPEC-2095/
当然,静态代码分析器可能无法发现无法检测资源的问题,例如对于
@TempDir
,因此您应该直接向 JUnit 团队建议...甚至提供 PR!