当前位置: 首页 > 知识库问答 >
问题:

使用gradle的PACT提供方

姜经武
2023-03-14

我是新手。我的应用程序是一个spring boot应用程序。消费者在协议代理中创建了协议。现在我正在尝试从providers端运行测试,我正在使用gradle插件来运行测试。我有几个问题:

> 使用者发布

  • 协议没有指定任何状态。这意味着我不需要在提供者端使用任何stateChangeUrl?

    我想实现的是:当我说pactVerify

    • 服务器启动,我的Spring Boot应用程序应该在localhost中启动并运行(这很好)
    • 在验证pact之前,我需要注入一些数据,如“post\add user.以便pact测试在尝试执行get\user时通过。(如何执行?)

    下面是我的成绩档案

    pact {
        serviceProviders {
            'user-api' {
                protocol = 'http'
                host = 'localhost'
                port = 8080
    
                startProviderTask = startService
                terminateProviderTask = stopService
    
                if ('pactVerify' in gradle.startParameter.taskNames) {
                    hasPactsFromPactBroker('http://pactbroker.com') {
                    < How to write some code here to say do POST before running PACT >
    
                    }
    
                }
    
            }
        }
    
  • 共有1个答案

    司马宏茂
    2023-03-14
    1. 使用者发布协议没有指定任何状态。这意味着我不必在提供程序端使用任何stateChangeUrl?

    这意味着您已经选择不使用该机制来更改状态,因此是的,您不需要使用该URL。但你可能希望改变你的想法。

    为什么不在开始所有测试之前注入数据呢?如果您没有需要担心的状态,那么您不妨使用预加载到数据库中的数据来启动提供程序。

    如前所述,所有配置信息都可以在https://github.com/dius/pact-jvm/tree/master/pact-jvm-provider-gradle上找到。

     类似资料:
    • 关于测试提供程序,我有几个问题: 在进行测试之前,是否需要启动提供程序服务?我应该在测试中到达实际的提供者endpoint吗?例如,假设我的提供者代码库上有一个GET/dogsendpoint。运行测试时,是否需要在本地启动服务,点击/dogsendpoint,然后用pact文件验证为该endpoint返回的响应? 如果我想将其作为配置项管道的一部分运行(我使用的是Circloci),那么有哪些最

    • 我正在使用Pact进行消费者驱动的合同测试。在我的usecase中,我的消费者“some-market-service-consumer”正在使用提供者“market-service”。在某个市场服务消费者处“产生”的合同如下所示: 在provider-site上,我正在使用Pact-Provider-Verifier-Docker'。以下是我的测试结果: 看起来,好像测试工作良好-“电话”被测试

    • 我想为我的客户和API建立契约测试。我的API不能在本地运行,所以我希望能够在部署到生产之前,针对已部署的API临时版本运行提供程序测试。 我在网上看到的提供程序测试的大多数示例都使用了localhost。当尝试对我部署的HTTPSendpoint运行提供程序测试时,测试失败,显示。是不支持HTTPS协议,还是我遗漏了什么? 使用pact-provider-verifier cmd line工具工

    • 测试运行的结果如下: 由于使用本地协议文件会使测试变为绿色,我想原因不在我的测试类代码中,不过如果有帮助的话,我在这里提供它: 由于使用本地协议文件不是一个选项,我真的想知道如何修复错误,并将感谢任何有帮助的意见。

    • 嗨,在添加apache poi gradle构建之后,我得到了这个期望。你能给我解释一下怎么解决吗。 我尝试过以多种方式排除套餐选项,但都没有成功 错误:任务': app: transformResourcesSusMergeJavaResForDebug'执行失败。 com.android.build.api.transform.TransformException:com.android.bu

    • 我试图按照Pact.io上的文档编写一个简单的集成测试。不幸的是,我得到一个例外,如下所示: