0

我遇到了 Spring Cloud Contracts 2.0.0.M6 的问题,或者我对如何正确配置存根运行程序测试有一些误解。

我想总是远程下载工件,所以我设置stubsModeREMOTE.

当我在 .m2 目录中有工件的本地运行测试时,它失败了。没关系,我可以理解这里的一位作者提出的观点。

我遇到的问题是,当我删除本地存根 jar 并运行测试用例时,工件被下载并再次放置在我的 .m2 目录中。实际上,这只允许我运行一次存根运行器然后它会失败,因为我在本地有文件。每次测试运行后,我必须继续从 .m2 中删除工件。

我通过配置解决了这个问题:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <systemPropertyVariables>
            <maven.repo.local>
                ${project.build.directory}/repo/${maven.build.timestamp}
            </maven.repo.local>
        </systemPropertyVariables>
    </configuration>
</plugin>

这意味着每次存根运行程序运行时,它都会检查并下载到一个新的“随机”目录/target/repo/<date>

这样做的正确方法是什么?

4

1 回答 1

0

当您拥有共享的.m2. 在下一个版本(1.2.x 和 2.0.0)中,由于关闭了这个问题https://github.com/spring-cloud/spring-cloud-contract/issues/545,您将能够通过stubrunner.snapshot-check-skip系统属性或STUBRUNNER_SNAPSHOT_CHECK_SKIP环境变量或设置插件属性(仅适用于 2.0.0)以禁用检查。

于 2018-02-22T11:47:11.073 回答