我遇到了 Spring Cloud Contracts 2.0.0.M6 的问题,或者我对如何正确配置存根运行程序测试有一些误解。
我想总是远程下载工件,所以我设置stubsMode
为REMOTE
.
当我在 .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>
。
这样做的正确方法是什么?