是否可以并行运行集成测试(Spring boot)?

sky*_*yho 12 java concurrency integration-testing spring-boot

已经为特定应用程序配置了测试环境(几十个测试类)。

这里也使用了TestContainer 。

我看到这样的算法

  1. 在整个测试过程中,应用程序上下文只会引发一次。
  2. 还使用Postgresql引发一个容器。
  3. 由于不可能遵循集成测试的顺序,因此每个测试都会自行清理写入数据库的数据。
  4. 从JVM中找出分配给它的处理器核心数,并根据这个数字为线程池创建容量。
  5. 在具有应用程序上下文执行器...)的类中创建一个线程池,并发出为线程运行测试类的任务。
  • 是否可以控制测试类的启动,即如何从代码中做到这一点?
  1. 要同时运行多个线程(根据当前系统的核心数量),我们可以使用CyclicBarrier
  2. 或者您可以使用不同的方法:

同样,您需要知道如何使用测试方法从类的对象运行此类的所有测试方法。

因此,我们创建测试类的对象,并使用Stream API,然后调用parallel()方法(但这里我不控制同时运行的线程数)。

解决这个问题有哪些选择?

谁有什么想法?