【问题标题】:Spring Cloud Contract DebuggingSpring Cloud 合约调试
【发布时间】:2018-07-12 15:15:23
【问题描述】:

我是 Spring Cloud 合同的新手。我已经编写了 groovy 合同,但是wiremock 测试失败了。我在控制台中看到的只是

org.junit.ComparisonFailure: 预期: 但是是:

谁能指导我如何启用更多调试广告还有没有办法打印wiremock发送的请求和响应? 我已经在我的 Spring Boot 应用程序中设置了 logging.level.com.github.tomakehurst.wiremock=DEBUG 但没有运气

【问题讨论】:

    标签: spring-cloud-contract


    【解决方案1】:

    如果您使用最新版本的 sc-contract 之一,WireMock 应该准确打印不匹配的内容。您还可以在此处阅读文档https://cloud.spring.io/spring-cloud-static/Finchley.RELEASE/single/spring-cloud.html#_how_can_i_debug_the_request_response_being_sent_by_the_generated_tests_client,我们会在其中更深入地回答您的问题。让我为你复制那部分

    86.8 如何调试生成的测试客户端发送的请求/响应?在某些情况下,生成的测试都归结为 RestAssured 依赖于 Apache HttpClient 的形式或方式。 HttpClient 有一个 称为线路日志记录的设施,它记录整个请求和 响应 HttpClient。 Spring Boot 有一个日志通用应用 做这种事情的属性,只需将其添加到您的 应用属性

    logging.level.org.apache.http.wire=DEBUG 86.8.1 如何调试 WireMock 发送的映射/请求/响应?从版本 1.2.0 开始,我们打开 WireMock 日志记录到 info 和 WireMock 通知器变得冗长。现在你将完全 知道 WireMock 服务器收到了什么请求以及匹配的 选择了响应定义。

    要关闭此功能,只需将 WireMock 日志记录设置为 ERROR

    logging.level.com.github.tomakehurst.wiremock=错误 86.8.2 如何查看在 HTTP 服务器存根中注册的内容?您可以使用 @AutoConfigureStubRunner 上的 mappingsOutputFolder 属性 或 StubRunnerRule 转储每个工件 ID 的所有映射。还有港口 将附加启动给定存根服务器的位置。

    86.8.3 我可以从文件中引用文本吗?是的!在 1.2.0 版本中,我们添加了这种可能性。调用 file(...​) 方法就足够了 DSL 并提供相对于合同所在位置的路径。如果你是 使用 YAML 只需使用 bodyFromFile 属性。

    【讨论】:

    • 抱歉没有提到版本。我在 1.2.4.RELEASE。我同时打开了 logging.level.org.apache.http.wire 和 logging.level.com.github.tomakehurst.wiremock=DEBUG
    • 只是添加到上面。即使启用它,我仍然看不到任何日志
    • 1.2.x 中,WireMock 版本未更新为将信息转储到日志的版本。您可以使用 404 调试来自 WireMock 的响应,应该有提供大量调试信息的整个主体
    猜你喜欢
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    • 2018-04-03
    相关资源
    最近更新 更多