My environment is Spring Boot 3.0.2, Gradle and Java 17. I implemented an application with more than 300 unit and integration tests.
经过200次测试,我的套体变得不稳定。 如果我从Intellij开始测试,所有测试都是正确的。 如果我从梯度指挥处接受一次试验,他们也会做罚款。 但是,如果我一起进行所有测试,一些随机失败。
错误是,它没有装上某些 mo子。
如果我把这一配置放在大楼里的话。 然后,所有测试都很顺利,但需要很长时间。
tasks.named( test ) {
forkEvery = 1
useJUnitPlatform()
}
如果我把这一组合放在一边,那么其他试验就会失败。
tasks.named( test ) {
maxParallelForks = Runtime.runtime.availableProcessors()
useJUnitPlatform()
}
难道这是一个记忆问题吗? 平行进程或类似情况? 事实非常奇怪,没有给我任何信任。
例如,测试班。
package ...
import ...
@SpringBootTest
@ActiveProfiles("test")
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class OfferCreateTest {
@Autowired
PropertyCreate propertyCreate;
@Autowired
OfferCreate offerCreate;
@MockBean
ObHttpClient obHttpClient;
@MockBean
RoomtypeFind roomtypeFind;
@MockBean
RateplanFind rateplanFind;
@MockBean
PropertyChannelFind propertyChannelFind;
private Long propertyId;
@BeforeAll
void setup(){
propertyId = createProperty();
}
private Long createProperty(){
PropertyCreateDto propertyCreateDto = PropertyCreateDtoMother.randomWithFullData();
return propertyCreate.create(propertyCreateDto).getResult().get("id");
}
@Test
void create_offer(){
OfferCreateDto offerCreateDto = OfferCreateDtoMother.random();
Long offerId = offerCreate.create(propertyId, offerCreateDto).getResult().get("id");
assertTrue(offerId >= 100000L);
}
@Test
void create_offer_on_non_existing_property(){
OfferCreateDto offerCreateDto = OfferCreateDtoMother.random();
assertThrows(Exception.class, () -> offerCreate.create(ContentGenerator.customIdLower(), offerCreateDto));
}
}
非常感谢