maven / surefire在unit testing后清理的好方法是什么,无论它们是否通过?

我们有一些unit testing,不幸的是创建了内存映射的NIO文件,这些文件无法被创建它们的进程删除(某些Windows问题)。

无论如何,我想在这些测试之后进行某种清理,无论它们是否通过。 我打算在准备包阶段运行一个小的ant脚本,但如果任何测试失败,肯定会立即退出。

除了进入具有后测试阶段的故障安全插件之外,有什么聪明的方法可以运行我的清理,无论通过还是失败?

我怀疑不是 – 我已经完成了所有可靠的配置选项……

编辑:内存映射的nio文件无法在同一进程中删除,即使是deleteOnExit也是如此。

您应该将要执行的操作绑定到集成后测试生命周期阶段,然后运行由maven-failsafe-plugin处理的集成测试阶段。 如果您配置maven-clean-plugin,它可能会起作用。

我会确保文件是在target/或OS的临时目录中创建的(使用System.getProperty("java.io.tmpdir") 。然后当你运行mvn clean ,或者最终由操作系统自动清理它们。