【发布时间】:2017-11-21 23:31:30
【问题描述】:
我有一个用 Spring Boot 编写的 JUnit 测试类,其中包含 3 个单元测试:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
@ContextConfiguration
@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
public class AppclaitionTest {
@BeforeClass
public static void initialize(){
System.out.println(">>>>>>>Intialization Part!");
}
@Test
public void test1(){
System.out.println(">>>>>>>Appcliation Test Started! - Test 1");
Application.main(new String[]{});
System.out.println(">>>>>>>Appcliation Test Ended! - Test 1");
}
@Test
public void test2(){
System.out.println(">>>>>>>Appcliation Test Started! - Test 2");
Application.main(new String[]{});
System.out.println(">>>>>>>Appcliation Test Ended! - Test 2");
}
@Test
public void test3(){
System.out.println(">>>>>>>Appcliation Test Started! - Test 3");
Application.main(new String[]{});
System.out.println(">>>>>>>Appcliation Test Ended! - Test 3");
}
@AfterClass
public static void destory(){
System.out.println(">>>>>>>Destroy Part!");
}
}
如果在第一次测试后运行,我会遇到异常:
java.net.BindException: Address already in use: bind
虽然释放了应用程序上下文,但它没有释放端口号,因此我得到了上述异常。
有什么方法可以在每次单元测试前关闭端口号?
【问题讨论】:
标签: java unit-testing spring-boot junit