【问题标题】:Service not starting using Spring-boot during integration tests在集成测试期间服务未开始使用 Spring-boot
【发布时间】:2015-08-23 15:08:17
【问题描述】:

我正在使用 rest-assured 和 spring-boot 编写测试。

@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
}

在日志中,我看到它说在端口上启动 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)

【问题讨论】:

    标签: tomcat spring-boot rest-assured


    【解决方案1】:

    对于网络集成测试,您应该改用@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!"));
        }
    
    }
    

    【讨论】:

    • 做了同样的事情,但仍然有问题。不确定是什么导致了问题。可以和servlet有关吗?
    • 你有没有想过这个问题?我看到了完全相同的问题。
    • 这个答案适用于spring 1.4或更低版本,更新版本@SpringBootTest就足够了。
    猜你喜欢
    • 2015-08-02
    • 2017-10-29
    • 2017-01-20
    • 2015-10-03
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 2018-06-28
    相关资源
    最近更新 更多