Конечная точка / graphql возвращает ошибку 404 во время интеграционного теста весеннего облачного приложения, но не при запуске приложения с помощью mvn spring-boot: run - PullRequest
0 голосов
/ 15 октября 2019

spring-cloud.version: Greenwich.SR2, пружинная загрузка 2.1.7

mvn spring-boot: run делает доступной конечную точку / graphql, но не проверяет mvn clean

Я включил graphql-java-servlet, javax.servlet-api, graphql-spring-boot-starter-test и graphql-spring-boot-starter, но все равно не работает

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

    <!-- graphql -->
    <dependency>
        <groupId>com.graphql-java</groupId>
        <artifactId>graphql-java</artifactId>
        <version>13.0</version>
    </dependency>
    <dependency>
        <groupId>com.graphql-java</groupId>
        <artifactId>graphql-java-extended-scalars</artifactId>
        <version>1.0</version>
    </dependency>
    <dependency>
        <groupId>com.graphql-java</groupId>
        <artifactId>java-dataloader</artifactId>
        <version>2.2.1</version>
    </dependency>
    <dependency>
        <groupId>com.graphql-java-kickstart</groupId>
        <artifactId>graphql-spring-boot-starter</artifactId>
        <version>5.10.0</version>
    </dependency>
    <dependency>
        <groupId>com.graphql-java</groupId>
        <artifactId>graphql-spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <version>5.0.2</version>
    </dependency>

    <!-- Apache CXF -->
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-rs-client</artifactId>
        <version>${cxf.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-json-provider</artifactId>
        <version>2.10.0</version>
    </dependency>

    <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>spring-mock-mvc</artifactId>
        <version>3.3.0</version>
        <scope>test</scope>
    </dependency>

Вот мой простой тест, которыйвозвращает 404:

@Test
public void persons() throws Exception {

    Map<String, Object> variables = new HashMap<String, Object>();

    GraphQLRequest request = new GraphQLRequest(
            "query persons{persons"
                    + "{"
                    + "     id"
                    + "}}",
            variables,
            null);

    // SUT
    given()
            .contentType(ContentType.JSON)
            .body(request)
            .get(GRAPHQL_PATH)
            .then()
            .log().body()
            .statusCode(200);
}

Тестовый класс помечен:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@TestPropertySource(locations = "classpath:bootstrap-test.yml")

Вот мой bootstrap.yml:

spring:
  application:
    name: crm-service
  cloud:
    config:
      uri: http://localhost:8081
      fail-fast: false
      password: configPassword
      username: user
  main:
    allow-bean-definition-overriding: true #i dont remember why but i think there is a bug with spring cloud and OAuth2ClientContext

acls-management:
  permissions-config-path: permissions-config.json
  acl-rules-path: acl-rules.json

eureka:
  client:
    register-with-eureka: false
    fetch-registry: false

graphql:
  servlet:
    mapping: /graphql
    enabled: true
...