问题标签 [spring-cloud-contract]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Spring cloud contract regex(nonBlank()) 生成控制符号
为什么 Spring Cloud 合约中的 regex(nonBlank()) 有时会生成像 \u0008 这样的控制符号,这会破坏生成的 java 文件的编译?这使得 nonBlank() 有点不可靠和不可用。我可以指定自己的正则表达式[a-z]*
,但也可以涵盖非 ascii unicode 符号。
合同示例:
java - 原因:java.lang.NoClassDefFoundError:无法初始化类 com.jayway.restassured.RestAssured
我正在尝试设置最新版本的 Spring Cloud 合约。但它总是抛出异常,无法初始化。我的毕业典礼看起来像这样。我可以在外部库中看到 2.9.0 是可见的。
这是例外:
请帮我解决这个问题。
java - java.lang.IllegalArgumentException:json 字符串不能为空或为空
我使用独立设置模拟了我的休息控制器,我得到了以下异常。我正在使用wiremocks来调用由我的控制器调用的外部服务。Spring Cloud Contract使用的以下类,它将自动生成MockMvcRequestSpecification
和ResponseOptions
测试场景
这是我的代码。
例外
在执行构建时,它会自动生成测试用例和调用wiremocks的控制器(我可以在日志中看到响应)。但是控制器没有收到回复。
有什么帮助吗?
java - 每个环境的 Spring 合约测试的不同设置
我有一些消费者合同测试应该在 Jenkins 上以离线模式运行,因为生产者和消费者 API 使用服务器上相同的本地 Maven 存储库,如果他们尝试下载生产者的存根,测试会崩溃。已经在本地了。但是在本地,它们应该被禁用或在在线模式下运行,因为生产者 API 非常稳定并且接口很少更改。
我已经准备了一个解决方法,但可能有更好的方法来做到这一点。我的解决方案是:
1) 将消费者的测试配置为使用 workOffline = true 运行
2) 将此代码添加到测试类,以便在未设置系统属性“runContractTests”时禁用合约测试:
3) 在 Jenkins 上运行这样的测试:
有什么更好的方法建议吗?
spring-cloud-contract - Spring Cloud Contract 在响应有效负载中返回带有正则表达式的元素的“光标”
我有一个基于 java 的服务作为提供者,一个节点 JS 应用程序作为消费者。
我在这里使用了一个存根运行器https://github.com/spring-cloud-samples/stub-runner-boot让 Node JS 运行在 wiremock 上。但无论是 Node JS、浏览器还是 curl 作为客户端,我都会得到这个“光标”文本来代替从正则表达式元素生成的字符串。
这是合同:
这是来自wiremock的实际响应:
响应:HTTP/1.1 200 内容类型:[application/json]
}
dependencies - 什么是Release Train Bom?
我正在研究 Spring Cloud 合同文档,并且我看到了Spring Cloud 文档的依赖项评论,并且想知道这到底是什么 <!-- If you're adding this dependency explicitly you have to
add it *BEFORE* the Release Train BOM-->
spring-cloud - Spring Cloud Contract base64图片上传到long
我们如何为基于 64 位的图像上传创建合约?这些 base64 字符串往往会变得很长,我们似乎遇到了这个异常:
spring-boot - Spring Cloud Contract远程工件下载与本地冲突,如何使其成为临时?
我遇到了 Spring Cloud Contracts 2.0.0.M6 的问题,或者我对如何正确配置存根运行程序测试有一些误解。
我想总是远程下载工件,所以我设置stubsMode
为REMOTE
.
当我在 .m2 目录中有工件的本地运行测试时,它失败了。没关系,我可以理解这里的一位作者提出的观点。
我遇到的问题是,当我删除本地存根 jar 并运行测试用例时,工件被下载并再次放置在我的 .m2 目录中。实际上,这只允许我运行一次存根运行器,然后它会失败,因为我在本地有文件。每次测试运行后,我必须继续从 .m2 中删除工件。
我通过配置解决了这个问题:
这意味着每次存根运行程序运行时,它都会检查并下载到一个新的“随机”目录/target/repo/<date>
。
这样做的正确方法是什么?
spring-cloud-contract - Spring Cloud Contract 的模块化合约
我们有问题,我们必须在几个项目中使用合同的一部分。是否有可能将合同分成几个片段并将这些部分包含在每个需要它的合同中?
java - Spring Cloud合约测试在线/离线模式的问题
我们在一些项目中使用 Spring Cloud 合约测试,因为它有很好的特性,而且我们所有的项目都使用 Spring。然而,这些测试变得非常不稳定,开发人员只是禁用它们,因为即使接口没有任何变化,它们也会破坏构建。
我们在在线模式下为 Jenkins 配置了测试,因此他们从 Artifactory 下载存根。然而,由于存根已经在存储库中,测试经常(每月至少两次)崩溃。我们无权访问远程存储库来手动删除存根,因此我们更改了在离线模式下运行它们的配置。这一直有效,直到提供者的版本发生更改,因为测试无法在本地找到新版本的存根并且它们再次崩溃,我们再次将它们更改为在线模式。
正如您可能想象的那样,这并不理想,我们也很担心,因为本地存根可能是当前版本的过时副本,我们不会检测提供者何时发生重大更改。
有没有更好的方法来配置测试?如果我们可以配置它们,这样它们总是下载存根并覆盖本地存根,那就太好了。