UnitTest调用/swagger-ui.html为springdoc-openapi生成404

问题描述 投票:0回答:1

我正在尝试迁移到springdoc-openapi;除了能够运行mvn的单元测试外,其他所有功能都运行良好;以下maven命令生成404:

  • mvn -Dtest = SwaggerUITest测试-f TestSwaggerUi -P集成

Intellij运行它没有问题,所以我怀疑这是一个类加载问题。

我使用了下面示例中的代码,并刚刚添加了单元测试

Guthub代码:-https://github.com/eugenp/tutorials/tree/master/spring-boot-springdoc

对于单元测试,我添加到pom.xml:(我使用保证检查一下swagger-ui页面是否存在)

   <dependency>
            <groupId>io.rest-assured</groupId>
            <artifactId>rest-assured</artifactId>
            <scope>test</scope>
            <version>3.0.2</version>
    </dependency>

测试本身:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SwaggerUITest extends AbstractRestAssuredSetupClass {

    /**
     * Test successful swagger-UI call
     **/
    @Test
    public void getSwaggerUIPage() {
        givenAnAdministratorIsAuthenticated()
                .contentType(HTML)
                .get("/swagger-ui/index.html?url=/v3/api-docs")
                .then()
                .statusCode(OK.value());
    }
}

public abstract class AbstractRestAssuredSetupClass {

    @Value("${request.logging.enabled:true}")
    private boolean logRequests;
    @Value("${response.logging.enabled:true}")
    private boolean logResponses;
    @Value("${local.server.port}")
    private int port;

    @Before
    public void setUpRestAssured() {
        RestAssured.baseURI = "http://localhost:" + port;
        RestAssured.config = config().redirect(redirectConfig().followRedirects(false));
        if (logRequests) {
            RestAssured.filters(new RequestLoggingFilter());
        }
        if (logResponses) {
            RestAssured.filters(new ResponseLoggingFilter());
        }
    }

    protected RequestSpecification givenAnAdministratorIsAuthenticated() {
        return RestAssured.given().auth().preemptive().basic("user", "user");
    }
}

我还发现了一个有相同问题的人:https://github.com/springdoc/springdoc-openapi/issues/99

很遗憾,没有解决方案。我也可以回到springfox。这样的问题导致我迁移:https://github.com/springfox/springfox/issues/2932

java spring-boot swagger-ui openapi springfox
1个回答
0
投票

[您可以看一下您从baeldung提到的样本。我们已将其添加到演示中,并提供了UI的示例测试。 (SwaggerUnitTest)。它没有任何问题地通过了travis-CI。

您也可以看一下测试:

© www.soinside.com 2019 - 2024. All rights reserved.