ОШИБКА. Заглушки не найдены. Пожалуйста, убедитесь, что Spring-cloud-contract: convert был вызван - PullRequest
0 голосов
/ 10 ноября 2019

Используя Spring Cloud Contract 2.1.3.RELEASE с spring-boot 2.1.1.RELEASE, я добавил зависимость и плагин в соответствии с пояснениями в руководстве:

      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-contract-verifier</artifactId>
        <version>${spring-cloud-contract.version}</version>
        <scope>test</scope>
      </dependency>

и

      <plugin>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-contract-maven-plugin</artifactId>
        <version>${spring-cloud-contract.version}</version>
        <extensions>true</extensions>
      </plugin>

Я также добавил под:$rootDir/src/test/resources/contracts:

Groovy-файл:

package contracts

import org.springframework.cloud.contract.spec.Contract

Contract.make {
    name("contract_updateNodeV4")
    request {
        method 'PUT'
        url '/v4/nodes'
        headers {
            header 'Content-Type': 'application/vnd.org.springframework.cloud.contract.verifier.twitter-places-analyzer.v1+json'
        }
        body(file("updateNodeV4_request.json"))
    }
    response {
        status OK()
        body(file("updateNodeV4_response.json"))
    }
}

И соответствующие updateNodeV4_request.json и updateNodeV4_response.json (без их содержимого, поскольку они большие) допустимых файлов JSON.

При запуске mvn clean install я ожидал, что сгенерированные тесты будут созданы (и пока что не пройдут) в соответствии с руководством.

Вместо этого я получаю следующую ошибку:

[ERROR] Failed to execute goal org.springframework.cloud:spring-cloud-contract-maven-plugin:1.0.0.RELEASE:generateStubs (default-generateStubs) on project xxx: Stubs could not be found: [C:\Users\xxx\git\xxx\target\stubs] .
[ERROR] Please make sure that spring-cloud-contract:convert was invoked

Ответы [ 2 ]

0 голосов
/ 11 ноября 2019

Я решил это, переместив плагин:

 <plugin>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-contract-maven-plugin</artifactId>
        <version>${spring-cloud-contract.version}</version>
        <extensions>true</extensions>
 </plugin>

Из корневого файла pom.xml в файл pom.xml конкретного модуля, в котором я создал контракты. Теперь он работает, как и ожидалось.

0 голосов
/ 10 ноября 2019

Скорее всего, ваши контакты находятся не в модуле src / test / resources / contract, а в папке корневого модуля. Если это так, вы должны сообщить плагину, что, увидев свойство dir плагинов контрактов

...