Pact.io,Junit-如何使用不同的标签测试多个消费者?
我有多个(不仅仅是junit)消费者应用程序,它们在pact broker中创建契约。Pact.io,Junit-如何使用不同的标签测试多个消费者?,junit,pact,Junit,Pact,我有多个(不仅仅是junit)消费者应用程序,它们在pact broker中创建契约。 这些消费者有许多不同的git分支,例如: consumer1:release123、release007、release999 consumer2:release69、release420、release50 问题 如何针对消费者及其标签的特定组合运行提供者测试? e、 g.消费者1版本007、消费者2版本69和版本50? 这些是否类似于-Dpactbroker.consumers=consumer1:
这些消费者有许多不同的git分支,例如:
:consumer1
release123、release007、release999
:consumer2
release69、release420、release50
- 如何针对消费者及其标签的特定组合运行提供者测试?
- e、 g.消费者1版本007、消费者2版本69和版本50?
- 这些是否类似于
-Dpactbroker.consumers=consumer1:release007,consumer2:release69,consumer2:release50
- 在junit中,有一个注释
,它允许您指定@PactBroker
和标记
消费者
- 根据描述,可以通过系统属性
和pactbroker.tags
pactbroker.consumers
- 每个都可以指定倍数,用逗号分隔-例如:
-Dpactbroker.consumers=consumer1,consumer2
- 我没有发现在运行提供商测试时是否可以将标签和消费者配对
- 请尝试下面的解决方案,可能会有所帮助
您可以在提供程序类中添加如下内容
使用的API
import au.com.dius.pact.provider.junit.IgnoreNoPactsToVerify;
import au.com.dius.pact.provider.junit.Provider;
import au.com.dius.pact.provider.junit.State;
import au.com.dius.pact.provider.junit.loader.PactBroker;
import au.com.dius.pact.provider.junit.loader.PactBrokerAuth;
import au.com.dius.pact.provider.junit.loader.PactFolder;
import au.com.dius.pact.provider.junit.target.Target;
import au.com.dius.pact.provider.junit.target.TestTarget;
import au.com.dius.pact.provider.spring.SpringRestPactRunner;
import au.com.dius.pact.provider.spring.target.SpringBootHttpTarget;
import au.com.dius.pact.consumer.Pact;
import au.com.dius.pact.consumer.PactProviderRuleMk2;
import au.com.dius.pact.consumer.PactVerification;
import au.com.dius.pact.consumer.dsl.PactDslWithProvider;
import au.com.dius.pact.model.RequestResponsePact;
类上添加了提供程序
@IgnoreNoPactsToVerify
@PactBroker(
authentication = @PactBrokerAuth(password = "*******", username = "********"),
host = "*******",
tags = {"test", "dev", "latest"},
port = "*****",
failIfNoPactsFound = false,
protocol = "http")
在消费者端,您可以添加每个测试用例,如下所示
使用的API
import au.com.dius.pact.provider.junit.IgnoreNoPactsToVerify;
import au.com.dius.pact.provider.junit.Provider;
import au.com.dius.pact.provider.junit.State;
import au.com.dius.pact.provider.junit.loader.PactBroker;
import au.com.dius.pact.provider.junit.loader.PactBrokerAuth;
import au.com.dius.pact.provider.junit.loader.PactFolder;
import au.com.dius.pact.provider.junit.target.Target;
import au.com.dius.pact.provider.junit.target.TestTarget;
import au.com.dius.pact.provider.spring.SpringRestPactRunner;
import au.com.dius.pact.provider.spring.target.SpringBootHttpTarget;
import au.com.dius.pact.consumer.Pact;
import au.com.dius.pact.consumer.PactProviderRuleMk2;
import au.com.dius.pact.consumer.PactVerification;
import au.com.dius.pact.consumer.dsl.PactDslWithProvider;
import au.com.dius.pact.model.RequestResponsePact;
测试用例级别
@Pact(consumer = "consumer-service-name")