Провайдер pactVerify не подбирает файл JSON Pact

У меня есть два проекта в одном и том же репо, с полностью отдельными структурами каталогов (потребитель в /test-consumer , provider in /app ).

Потребительская проверка выводит файл пакта JSON в /test-consumer/build/pacts , как и ожидалось

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

Затем я копирую файл в /app/build/pacts/ и помещаю эту же строку build.gradle в build.gradle моего провайдера.

Примерный проект, с которого я плагиату, использует брокер Pact, поэтому я догадался, что смогу это сделать и заменить его на rootDir , но он не работает. Это то, что я получаю:

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

Таким образом, похоже, что он находит файлы Pact, но не может найти пару провайдеров + потребителей в любом из них.

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') } } } 

Вы получаете это предупреждение, потому что вы не сказали плану pact, где находить файлы pact. Для пактов в каталоге добавьте следующее:

 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 для всех тестов, но проверка пакта не выполняется в качестве теста.