Spring Cloud Contract 不适用于 Surefire 2.20
Spring Cloud Contract does not work with Surefire 2.20
我正在尝试 Spring Cloud Contact:我的 spring-boot 应用程序中有一个端点“/greeting”,它 returns "Hello World!".
合同如下:
request {
method 'GET'
url '/greeting'
headers {
contentType('application/json')
}
}
response {
status 200
body([
"content": "Hello, World!"
])
}
我的测试class:
public class ExampleJavaConsumerPactTestIT {
@Before
public void setup() {
RestAssuredMockMvc.standaloneSetup(new GreetingController());
}
@Test
public void aQuickTest(){
}
}
一切正常:如果我将上面的合同更改为 "content": "Hello!",则测试失败。
但是,当我添加对用户 Surefire 插件的依赖时:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<includes>
<include>**/*IT.java</include>
</includes>
</configuration>
</plugin>
然后我运行用错误的合约(content": "Hello!")再次测试,测试应该会失败,但实际上并没有。
有什么问题吗?
您的设置有误。生成的测试称为 ContractVerifierTest
,因此您的任何个人资料都不会选择它。只需将 <include>**/*ContractVerifierTest.java</include>
行添加到您的 surefire 配置中。
我正在尝试 Spring Cloud Contact:我的 spring-boot 应用程序中有一个端点“/greeting”,它 returns "Hello World!".
合同如下:
request {
method 'GET'
url '/greeting'
headers {
contentType('application/json')
}
}
response {
status 200
body([
"content": "Hello, World!"
])
}
我的测试class:
public class ExampleJavaConsumerPactTestIT {
@Before
public void setup() {
RestAssuredMockMvc.standaloneSetup(new GreetingController());
}
@Test
public void aQuickTest(){
}
}
一切正常:如果我将上面的合同更改为 "content": "Hello!",则测试失败。
但是,当我添加对用户 Surefire 插件的依赖时:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<includes>
<include>**/*IT.java</include>
</includes>
</configuration>
</plugin>
然后我运行用错误的合约(content": "Hello!")再次测试,测试应该会失败,但实际上并没有。
有什么问题吗?
您的设置有误。生成的测试称为 ContractVerifierTest
,因此您的任何个人资料都不会选择它。只需将 <include>**/*ContractVerifierTest.java</include>
行添加到您的 surefire 配置中。