簡體   English   中英

集成測試期間服務未開始使用Spring-boot

[英]Service not starting using Spring-boot during integration tests

我正在使用可放心使用和彈簧引導的方式編寫測試。

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = ApplicationSErvice.class)
@WebAppConfiguration
@IntegrationTest("server.port:0")//dynamically pick up ports
public class MyTestClass{
 @Value("${local.server.port}")
    int port;

    @Before
    public void setup(){
        RestAssured.port=port;
    }
@Test
public void testMethod(){
//asserting
}

在日志中,我看到它說在端口和STarting服務Tomcat上啟動Tomcat,但隨后失敗,並顯示此錯誤-

ERROR 8480 --- [cat-startStop-1] org.apache.catalina.core.ContainerBase   : A child container failed during start

java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/service]]
    at java.util.concurrent.FutureTask.report(FutureTask.java:122)
    at java.util.concurrent.FutureTask.get(FutureTask.java:188)

對於Web集成測試,您應該改用@WebIntegrationTest

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebIntegrationTest
public class ApplicationTest {

    @Value("${local.server.port}")
    private int port;

    @Before
    public void setup() {
        RestAssured.baseURI = "http://localhost:" + port;
    }

    @Test
    public void testStatus() {
        given().contentType(ContentType.JSON).get("/greeting").prettyPeek().then().statusCode(200);
    }

    @Test
    public void testMessage() {
        given().contentType(ContentType.JSON).get("/greeting").then()
            .body("content", is("Hello, World!"));
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM