Как загрузить stub.jar, созданный весенним облачным контрактом - PullRequest
0 голосов
/ 29 мая 2018

Я использую Spring Cloud Contract для тестирования на стороне производителя.И теперь я хотел загрузить файл stub.jar в nexus, чтобы мой коллега мог написать какой-нибудь интеграционный тест против моего продюсера.И мне было трудно следить за документацией Spring.

    <!-- First disable the default jar setup in the properties section-->
    <!-- we don't want the verifier to do a jar for us --> 
    <spring.cloud.contract.verifier.skip>true</spring.cloud.contract.verifier.skip> 

<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<id>stubs</id>
<formats>
    <format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
    <fileSet>
        <directory>src/main/java</directory>
        <outputDirectory>/</outputDirectory>
        <includes>
            <include>**com/example/model/*.*</include>
        </includes>
    </fileSet>
    <fileSet>
        <directory>${project.build.directory}/classes</directory>
        <outputDirectory>/</outputDirectory>
        <includes>
            <include>**com/example/model/*.*</include>
        </includes>
    </fileSet>
    <fileSet>
        <directory>${project.build.directory}/snippets/stubs</directory>
        <outputDirectory>META-INF/${project.groupId}/${project.artifactId}/${project.version}/mappings</outputDirectory>
        <includes>
            <include>**/*</include>
        </includes>
    </fileSet>
    <fileSet>
        <directory>${basedir}/src/test/resources/contracts</directory>
        <outputDirectory>META-INF/${project.groupId}/${project.artifactId}/${project.version}/contracts</outputDirectory>
        <includes>
            <include>**/*.groovy</include>
        </includes>
    </fileSet>
</fileSets>

  1. После того, как я добавил строку «пропустить» в pom, я обнаружил, что заглушки json никогда не генерируются.
  2. Я использую Spring Cloud Contract 1.2.4, и я думаю, что в цели есть только папка "заглушка", а не "сниппеты / заглушки".
  3. Какие файлы требуются в stub.jar для запуска Stub Runner?

1 Ответ

0 голосов
/ 29 мая 2018

Я использую Spring Cloud Contract для тестирования на стороне производителя.И теперь я хотел загрузить файл stub.jar в nexus, чтобы мой коллега мог написать какой-нибудь интеграционный тест против моего продюсера.

Если вы используете DSL, вам ничего не нужно делать.Просто сделайте ./mvnw deploy, и мы сгенерируем банку с жиром и банками с заглушками.

И я обнаружил, что следовать весенней документации трудно.

Это не совсем конкретноЭто?Что именно трудно следовать?

После того, как я добавил строку «пропустить» в pom, я обнаружил, что заглушки json никогда не генерируются.

Какая строка skip?Если вы добавите <spring.cloud.contract.verifier.jar.skip>false</spring.cloud.contract.verifier.jar.skip>, то мы отключим только создание JAR.

Я использую Spring Cloud Contract 1.2.4 и думаю, что в целевой папке находится только папка-заглушка, а не"фрагменты / заглушки".

Вы даже используете Rest Docs?Откуда вы взяли фрагмент?Отсюда https://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html#_publishing_stubs_as_jars?Если вы прочтете текст поверх фрагмента, вы увидите For both Maven and Gradle, the setup comes ready to work. However, you can customize it if you want to..Если вы следуете пошаговому разделу документации, мы опишем весь самый основной процесс.Кроме того, существует множество учебных пособий, в том числе очень подробное http://cloud -samples.spring.io / spring-cloud-contract-samples / workshop.html

Какие файлы требуются в stub.jar для запуска Stub Runner?

Мы описываем это в документации.Если вы хотите использовать отображение пути к классам, прочитайте этот раздел https://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html#_classpath_scanning.В противном случае мы распаковываем и просматриваем любой файл WireMock Json, который мы можем проанализировать.

Здесь у вас есть рабочий пример ручного создания заглушек jar - https://github.com/spring-cloud-samples/spring-cloud-contract-samples/tree/master/producer_with_restdocs.Я думаю, что вы должны прочитать документацию с самого начала и следовать учебным пособиям.Или расскажите нам, что именно неясно с документацией, которая вас смутила.

...