當我為 Spring Boot 應用程式運行單元測驗時,我發現嘗試執行我的 Main 類的奇怪行為。是否有其背后的原因或任何方式來阻止這種情況發生。
我的主課
@SpringBootApplication
public class SampleMain implements CommandLineRunner {
private static final Logger logger = LogManager.getLogger(SampleMain.class);
public static void main(String[] args) {
System.out.println("test");
}
@Override
public void run(String... args) throws Exception {
logger.info("running main..");
}
}
單元測驗
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
class SampleTest {
@Test
void test() {
assertTrue(true);
}
}
當我運行單元測驗時,它也會執行我的主類(SampleMain)
INFO 13912 --- [main] org.dec.image.SampleTest:在 PID 13912 的 DESKTOP 上使用 Java 17.0.1 啟動 SampleTest(由 Boomr 在 C:\java\git\image-duplicates 中啟動)
INFO 13912 --- [main] org.dec.image.SampleTest:未設定活動組態檔,回退到 1 個默認組態檔:“默認”
INFO 13912 --- [main] org.dec.image.SampleTest:在 0.671 秒內啟動 SampleTest(JVM 運行 1.703)
資訊 13912 --- [main] org.dec.image.SampleMain:運行 main..
它背后的原因是什么,無論如何要阻止它?
Edit : What I point out is the skeleton code, it's actually run the main class each time I run the unit test, which kind of annoying as Main class take quite sometimes to run.
uj5u.com熱心網友回復:
我自己遇到了這個。這是一種反直覺的 Spring 作業方式。我通過將我的測驗應用程式放在具有主應用程式的包之外的包中來解決它。
因此,如果您的主應用程式是 my.app.SampleMain,請嘗試將您的測驗類放在 my.test.SampleTest 中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/446013.html
標籤:java spring spring-boot junit5
上一篇:JPA按ID查找物件
