Java 集成测试运行缓慢,因为服务器为每个类单独启动

Ale*_*arT 6 java junit integration-testing junit4

我们有 Spring Boot 应用程序,并且使用 JUnit 4 和 RestAssured Framework 进行集成测试。

我们的项目中有很多与测试相关的类。

我们的集成测试需要很长时间才能在本地运行,因为每个类都会引导并引入服务器 - 它在类中运行测试,然后终止服务器。

每个班级都会发生这种情况。

每次启动服务器和终止服务器都需要花费大量时间 - 这使得同时运行所有测试变得非常慢。

我希望服务器仅在本地启动一次 - 并且所有测试都针对它运行。

所以基本上我的用例是当我尝试一次运行所有测试时。

提前致谢

此致

Mic*_*ter 1

集成测试通常很慢。但为了保持测试独立性,并不总是可以选择将测试准备和清洁移至测试之外。

让测试并行运行怎么样?请参阅 Gradle。我认为这也可以在 Maven 中完成。

是的,这通常会带来一系列新的麻烦,例如确保同时运行的测试不会相互影响。通常使用的端口需要特定于测试,通常提供 0 表示:找到一个空闲端口。在测试过程中可以检索实际使用的端口。

这样,在保持测试独立性的同时,总速度可能会更好。