我有一个项目,其中包含大约200个测试类中的近500个独立测试。其中一些测试完成后未能很好地清理其自身状态,在Eclipse中这会导致某些测试失败。如果通过Ant从命令行运行测试套件,则所有测试都会通过。
我是否可以在Eclipse中启用“测试隔离”?即使运行时间更长,我也不介意。
从长远来看,我将清理不良表现的测试,但在短期内,我想让测试正常工作。
我有一个项目,其中包含大约200个测试类中的近500个独立测试。其中一些测试完成后未能很好地清理其自身状态,在Eclipse中这会导致某些测试失败。如果通过Ant从命令行运行测试套件,则所有测试都会通过。
我是否可以在Eclipse中启用“测试隔离”?即使运行时间更长,我也不介意。
从长远来看,我将清理不良表现的测试,但在短期内,我想让测试正常工作。
以下是我找到的解决方案,可以在各自的JVM中执行每个测试类:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<forkCount>1</forkCount>
<reuseForks>false</reuseForks>
</configuration>
</plugin>
mvn test
运行测试时的问题,不幸的是IntelliJ不支持这一点。我也有类似的需求,并开发了小型Maven插件Jute,已发布在Maven中央仓库。它为每个JUnit测试方法启动外部JVM进程。