并行化测试(Cucumber 5、Junit 5)
Parallelize tests (Cucumber 5, Junit 5)
我正在使用 Cucumber 5、Junit 5。我在功能文件中编写了测试。
现在我想这样做:
- 将我的测试分成几组(例如,2 组:group1 和 group2)。
- 为组指定不同的配置(例如:在顺序模式下从 group1 测试,在并行模式下从 group2 测试)。
- 最终 运行 所有测试(即 group1 将 运行 按顺序进行,group2 并行进行)。
请告诉我如何在 Cucumber5/Junit5 上完成此操作?
而不是在测试组中思考,您应该确定不应同时使用的资源。一旦您确定了这些资源,您就可以标记每个场景或使用它们使用的资源。您可以通过标记功能来标记功能文件中的所有场景。
然后您可以配置 Cucumber 以指示 JUnit 平台避免通过 junit-platform.properties
:
同时调度这些场景
cucumber.execution.exclusive-resources.<tag-name>.read-write=<resource-name>
例如使用时:
cucumber.execution.exclusive-resources.reads-and-writes-system-properties.read-write=SYSTEM_PROPERTIES
标记为@reads-and-writes-system-properties
的场景将使用读写锁锁定SYSTEM_PROPERTIES
资源,并且不会与锁定同一资源的任何其他场景并发执行。
见:
https://github.com/cucumber/cucumber-jvm/tree/main/junit-platform-engine#exclusive-resources
我正在使用 Cucumber 5、Junit 5。我在功能文件中编写了测试。
现在我想这样做:
- 将我的测试分成几组(例如,2 组:group1 和 group2)。
- 为组指定不同的配置(例如:在顺序模式下从 group1 测试,在并行模式下从 group2 测试)。
- 最终 运行 所有测试(即 group1 将 运行 按顺序进行,group2 并行进行)。
请告诉我如何在 Cucumber5/Junit5 上完成此操作?
而不是在测试组中思考,您应该确定不应同时使用的资源。一旦您确定了这些资源,您就可以标记每个场景或使用它们使用的资源。您可以通过标记功能来标记功能文件中的所有场景。
然后您可以配置 Cucumber 以指示 JUnit 平台避免通过 junit-platform.properties
:
cucumber.execution.exclusive-resources.<tag-name>.read-write=<resource-name>
例如使用时:
cucumber.execution.exclusive-resources.reads-and-writes-system-properties.read-write=SYSTEM_PROPERTIES
标记为@reads-and-writes-system-properties
的场景将使用读写锁锁定SYSTEM_PROPERTIES
资源,并且不会与锁定同一资源的任何其他场景并发执行。
见: https://github.com/cucumber/cucumber-jvm/tree/main/junit-platform-engine#exclusive-resources