2017-04-13 127 views
0

我有两个项目在同一回购,完全独立的目录结构(消费者/test-consumer,提供者/app)。提供者pactVerify不拾取JSON条约文件

的消费者检输出在/test-consumer/build/pacts一个JSON文件条约,通过

dependencies { test { systemProperties['pact.rootDir'] = "$buildDir/pacts" } } 

预期我然后将文件复制到/app/build/pacts/,并且把这种同systemProperties线进入我的供应商的build.gradle

我剽窃的示例项目使用的是Pact代理,所以我猜我可以将其取出,并用rootDir代替它,但它不起作用。这就是我得到:

WARNING: There are no consumers to verify for provider 'Coffee Ordering Provider'

因此,它好像它找到契约文件,却找不到其中的任何一个供应商+消费者对。

TL; DR: 我做错了什么?

这里有一些代码位的帮助:

dependencies { 
    ... 
    test { systemProperties['pact.rootDir'] = "$buildDir/pacts" } 
} 

pact { 
    serviceProviders { 
    'Coffee Ordering Provider' { 
     port = 8080 

     startProviderTask = startProvider 
     terminateProviderTask = stopProvider 
     stateChangeUrl = url('http://localhost:8080/pactStateChange') 
    } 
    } 
} 

回答

3

您获得的警告,因为你还没有告诉该协议插件在哪里可以找到该协议的文件。对于目录中的村规民约,添加以下内容:

pact { 
    serviceProviders { 
    'Coffee Ordering Provider' { 
     port = 8080 

     startProviderTask = startProvider 
     terminateProviderTask = stopProvider 
     stateChangeUrl = url('http://localhost:8080/pactStateChange') 

     hasPactsWith('Coffee Ordering Consumers') { 

      // Will define a consumer for each pact file in the directory. 
      // Consumer name is read from contents of pact file 
      pactFileLocation = file("$buildDir/pacts") 

     } 
    } 
    } 
} 

只是注意,你是设置pact.rootDir所有测试,但该协议验证不运行进行测试。

+0

'String'参数与'hasPactsWith'的相关性是什么? – Kazuaki

+0

也许如果找不到Pact文件,可能会有更具体的错误? :3 – Kazuaki

+1

'hasPactsWith'的'String'参数没有效果。最初是为了提供某种类型的消费者组合。 –

相关问题