parallelization
Conventions for using parallelization in all tests using Jupiter
- License 许可
- Apache-2.0
- 最近更新
- 2026-07-20
- Stars
- ★ 2
- Forks
- 0
01 前言 Front Matter
- name
- parallelization
- description
- Conventions for using parallelization in all tests using Jupiter
03 SKILL.md 正文
Add a JUnit properties file to all modules to make sure parallelization is enabled
Filename should be: junit-platform.properties and it should be placed in src/test/resources of each module.
Its content should be:
junit.jupiter.execution.parallel.enabled = true
junit.jupiter.execution.parallel.config.fixed.parallelism = 4
junit.jupiter.execution.parallel.config.dynamic.factor = 4.0
junit.jupiter.execution.parallel.mode.default = concurrent
junit.jupiter.execution.parallel.mode.classes.default = concurrent
Only add this file, and if the file doesn't exist. Do not override existing files.
Check if tests run successfully for every module where you add this file. If it fails, then remove the file.
In case they fail, the following should be tried
- Add
@TestMethodOrder(OrderAnnotation::class)to the test class - Add
@Execution(SAME_THREAD)to the test methods that are failing - Add
@Order(1)to the test methods that are failing. The number should be sequential for all failing tests
Example 1
@SpringBootTest(webEnvironment = RANDOM_PORT)
@TestMethodOrder(OrderAnnotation::class)
class NarwhalsShopControllerTest @Autowired constructor(
private val narwhalsWebShopDao: NarwhalsWebShopDao,
private val testRestTemplate: TestRestTemplate,
) {
val xmlHeaders = HttpHeaders().apply {
add("Content-Type", APPLICATION_XML_VALUE)
}
val jsonHeaders = HttpHeaders().apply {
add("Content-Type", APPLICATION_JSON_VALUE)
}
@Test
fun `should load narwhals`() {
}
@Test
fun `should make full purchase when stocks are available`() {
}
@Test
@Execution(SAME_THREAD)
fun `should make multiple purchase request but only one succeeds when stocks are available`(): Unit = runBlocking {
}
@Test
@Execution(SAME_THREAD)
fun `should make partial purchase when stocks are not available`() {
}
@Test
fun `should make no purchase when stocks are not available and show predictions`() {
}
@Test
@Execution(SAME_THREAD)
@Order(1)
fun `should return not found failed when nothing is available`() {
}
}
If it still fails. Only here revert the changes made to the test class and remove the junit-platform.properties file.
04 同仓库更多 Skills
spring
Conventions for dependency injection and mocking in Spring Boot in this project. Use this whenever writing, reviewing, or refactoring integration test classes (anything annotated @SpringBootTest, or under src/test that talks to a real Spring context), especially when deciding how to wire dependencies or mock collaborators. Also consult this before adding @Autowired, @MockBean, @MockitoBean, or field injection in any test class.
spring-integration-test-wiring
Conventions for dependency injection and mocking in Spring Boot integration tests in this project. Use this whenever writing, reviewing, or refactoring integration test classes (anything annotated @SpringBootTest, or under src/test that talks to a real Spring context), especially when deciding how to wire dependencies or mock collaborators. Also consult this before adding @Autowired, @MockBean, @MockitoBean, or field injection in any test class.
Scripts patterns
Conventions for using sh, bash, bat, python scripts
Readme standards
Conventions to use in Readme files
Maven standards
Conventions to use in Maven files, mostly the `pom.xml` files
kotlin patterns
Conventions for using Kotlin