我们在一些项目中使用Spring Cloud合同测试,因为它具有很好的功能,我们所有的项目都使用Spring。然而,这些测试变得非常不稳定,开发人员只是禁用它们,因为即使接口没有任何变化,它们也会破坏构建。
我们在线模式下为Jenkins配置了测试,因此他们从Artifactory下载了存根。但是经常(每月至少两次)测试崩溃,因为存根已经存储在存储库中。我们无权访问远程存储库以手动删除存根,因此我们更改了在脱机模式下运行存根的配置。这有效,直到提供程序的版本发生更改,因为测试无法在本地找到新版本的存根,并且它们再次崩溃,我们再次将它们更改为在线模式。
您可能认为这并不理想,我们也担心,因为本地存根可能是当前版本的过时副本,我们不会检测提供程序何时发生更改。
有没有更好的方法来配置测试?如果我们可以配置它们以便它们总是下载存根并覆盖本地存根,那将是很好的。
Spring Cloud Contract remote artifact download clashes with local, how to make it temporary?重复
我也可以在这里复制答案:
当您拥有共享的.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))禁用检查。