Код для объяснения проблемы:
setupa:
Код: Выделить всё
@SpringBootApplication
public class SetupA {
public static void main(String[] args) {
SpringApplication.run(SetupA.class, args);
}
static {
System.out.println("============================ setup of A ====================================");
// Containers to startup for setup A
}
}
< /code>
@SpringBootTest(classes = SetupA.class)
public class BaseATest {
}
< /code>
class SetupATests extends BaseATest {
@Test
void testA() {
System.out.println("============================ executed A test ====================================");
}
}
Код: Выделить всё
@SpringBootApplication
public class SetupB {
public static void main(String[] args) {
SpringApplication.run(SetupB.class, args);
}
static {
System.out.println("============================ setup of B ====================================");
// Containers to startup for setup B
}
}
< /code>
@SpringBootTest(classes = SetupB.class)
public class BaseBTest {
}
< /code>
class SetupBTests extends BaseBTest{
@Test
void testB() {
System.out.println("============================ executed B test ====================================");
}
}
образной 3.34 "src =" https://i.sstatic.net/kzz2z9vb.png "/>
В то время как в Spring Boot 3.4.5. Выполняется только статический блок SetupB :
почему это внезапно отличается? Вероятно, это был не лучший использование, потому что все статические блоки работали, и все контейнеры начались, но все же хотят знать, что представило различное поведение между версиями Spring Boot.
Подробнее здесь: https://stackoverflow.com/questions/796 ... estclasses