我对詹金斯的行家有疑问。当我在jenkis中使用Maven构建应用程序时,出现错误:
[ERROR] Failures:
[ERROR] MessageResourceIT.Should add Message to Room:49 Condition not satisfied:
response.getStatusCode() == HttpStatus.CREATED
| | | |
| 403 FORBIDDEN false 201 CREATED
它看起来像是正常的失败测试,但是当我在计算机上构建应用程序时,测试是正确的。
我的测试:
def "Should add Message to Room"() {
given:
Room room = roomHelper.room()
participantHelper.participant(room.id, user.id)
AddMessageRequest request = messageHelper.addMessageRequest()
String url = UriComponentsBuilder.fromPath('/room/{roomId}/message')
.buildAndExpand(room.id)
HttpEntity payload = new HttpEntity<>(request, userHeaders)
when:
ResponseEntity<MessageResponse> response = restTemplate.exchange(url, HttpMethod.POST, payload, MessageResponse.class)
then:
response.getStatusCode() == HttpStatus.CREATED
response.body
MessageResponse messageResponse = response.body
messageResponse.content == request.content
}
我的设置:
def setup() {
String userLogin = 'test'
String userPassword = 'test'
user = userHelper.user(userPassword, userLogin)
userHeaders = securityHelper.securityHeader(userLogin, userPassword)
}
看起来像詹金斯(Jenkins)异步运行测试,而另一个测试在运行该测试时删除了用户。
我使用了maven-failsafe-plugin:
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<skipITs>false</skipITs>
<includes>
<include>%regex[.*IT.*]</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
任何人都知道会发生什么以及如何解决?