首页 > 解决方案 > 将所有测试项目设置为并行 SpringBoot 和 junit 后并发修改异常

问题描述

运行所有的 java 测试需要很长时间才能完成。

因此解决方案是使用多个线程并行运行所有测试,以运行@RunWith(ParallelSuite.class)所有类中使用的函数。

但问题是有些函数在并行运行时使用相同的资源。所以它抛出一个ConcurrentModificationException. 解决方案是设置此功能并按顺序运行它们。

在将spring boot项目中的所有junit测试配置为使用ParallelSuite并行工作之后,如何隔离某些功能以按顺序工作,否则还有其他解决方案可以做到这一点。

标签: javaspringmockitojunit4

解决方案


用于synchronized需要一次由一个线程访问的函数,或者您可以在单个函数中使用:

void runSync() {
    synchronized (this) {
        count = count + 1;
    }
}

您可能还应该阅读这篇文章。


推荐阅读