仅在类修改后受影响的测试上运行JUnit



假设您有一个大型项目,其中包含数千个JUnit测试。假设运行所有这些测试需要7分钟。当您从ant/maven脚本构建项目时,这看起来很短。

但是当您使用Eclipse时,您不能经常运行所有的测试,因为7分钟的时间太长了。

问题来了:当您修改一些类时,是否有一种方法可以让JUnit只运行那些可能受到这些类更改影响的测试

我的意思是,这听起来是可行的使用类加载器特性:在运行每个测试之后,有可能知道哪些类已经为这个测试加载,并存储在某处(甚至在内存中)用于这个测试的每个类的签名。

再次启动Junit时,对于每个测试,它可以检查此测试使用的类自上次运行以来是否已被修改,然后如果没有问题并且没有影响测试的类被更改,则不启动测试。(如果上次运行的测试是正常的,它应该是正常的)

有人知道这是否已经完成/实现了吗?

您可以尝试从Eclipse或IntelliJ使用Infinitest。(编辑拼写)