我遇到Spring Cloud Contracts 2.0.0.M6的问题,或者我必须误解如何正确配置存根运行器测试。
我希望始终远程下载工件,因此我将stubsMode
设置为REMOTE
。
当我在本地运行测试时,我的.m2目录中存在工件,它失败了。这很好,我可以理解其中一位作者提出的观点here。
我遇到的问题是,当我删除本地存根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>
这意味着每次存根运行器运行时,它都会检查并下载到新的&#34;随机&#34;目录/target/repo/<date>
。
这样做的正确方法是什么?
答案 0 :(得分:0)
当您拥有共享.m2
时,CI系统中可能会出现此问题(并不总是会发生)。在下一个版本(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)以禁用检查。