2

我们有一些单元测试不幸地创建了内存映射的 NIO 文件,这些文件不能被创建它们的进程删除(一些 Windows 问题)。

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

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

我怀疑不是 - 我已经完成了所有的surefire配置选项......

编辑:不能在同一个进程中删除内存映射的 nio 文件,即使是 deleteOnExit。

4

3 回答 3

2

您应该将您想做的事情绑定到集成测试后的生命周期阶段,该阶段在集成测试阶段之后运行,该阶段由maven-failsafe-plugin处理。如果您配置 maven-clean-plugin 这样做,它可能会起作用。

于 2012-08-17T06:09:52.773 回答
1

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

于 2012-08-17T08:16:54.850 回答
0

在 pom 中添加以下依赖项并从您的 POM 中删除现有依赖项

        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.19.1</version>
                </plugin>
            </plugins>
        </build>
于 2020-07-17T16:18:33.590 回答