部署时的春云合同验证

时间:2017-04-25 08:53:20

标签: spring-boot

我已经广泛使用了SpringCloudContract。这是非常有效的TDD。我想在实际部署期间验证合同。我有许多微服务(Spring流:源/处理器/接收器),并希望允许用户在数据流服务器仪表板中定义流(kafka)时链接它们。我正在传递流中的某些Object作为  输入/输出微服务。我想检查微服务的兼容性并相应地警告用户。 SpringCloudContract有助于在开发时间而非运行时间内验证合同。

请帮助。

1 个答案:

答案 0 :(得分:0)

我是Spring云合约的新手,但我找到了启动StubRunner的方法,但是当它触发证书时,我得到了关注。

2017-04-26 16:14:10,373 INFO main cssContractTester:36 - ContractTester:consumerMessageListener>>>>>>>>>>>>>>> ;>>>>>>>>>>>>>> org.springframework.cloud.contract.stubrunner.BatchStubRunner@5e13f156 2017-04-26 16:14:10,503 ERROR main osccvmsStreamStubMessages:63 - 尝试发送消息时发生异常[GenericMessage [payload = {" name":" First",& #34;说明":"有效","值":1},header = {id = 49c6cc5c-93c8-2498-934a-175f60f42c03,timestamp = 1493203450482}]]到名称为[verifications]的频道 org.springframework.messaging.MessageDeliveryException:Dispatcher没有用于channel" application.input'。的订阅者。嵌套异常是org.springframework.integration.MessageDispatchingException:Dispatcher没有订阅者,failedMessage = GenericMessage [payload = {" name":" First"," description": "有效","值":1},header = {id = 49c6cc5c-93c8-2498-934a-175f60f42c03,timestamp = 1493203450482}]     在org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:93)     在org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:423)     在org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:373)     在org.springframework.cloud.contract.verifier.messaging.stream.StreamStubMessages.send(StreamStubMessages.java:60)     在org.springframework.cloud.contract.verifier.messaging.stream.StreamStubMessages.send(StreamStubMessages.java:

与Maven安装相同的工作正常,但不适用于主类。

...
@RunWith(SpringRunner.class)
@AutoConfigureMessageVerifier
@EnableAutoConfiguration
@EnableIntegration
@Component
@DirtiesContext
public class ContractTester {

private static Logger logger = LoggerFactory.getLogger(ContractTester.class);
@Autowired StubTrigger stubTrigger;
@Autowired ConsumerMessageListener consumerMessageListener;

@Bean
public boolean validSimpleObject() throws Exception {
logger.info("ContractTester : consumerMessageListener >>>>>>>>>>>>>>>>>>>>>>>>>>>>"+stubTrigger);
stubTrigger.trigger("accepted_message");
if(consumerMessageListener ==null) {
logger.info("ContractTester : consumerMessageListener >>>>>>>>>>>>>>>>>>>>>>>>>>>>");
}
logger.info("ContractTester >>>>>>>>>>>>>>>>>>>>>>>>>>>>" +consumerMessageListener.toString());
SimpleObject simpleObject = (SimpleObject) consumerMessageListener.getSimpleObject();

logger.info("simpleObject >>>>>>>>>>>>>>>>>>>>>>>>>>>>" +simpleObject.toString());
        assertEquals(1, simpleObject.getValue());                       
        //then(listener.eligibleCounter.get()).isGreaterThan(initialCounter);       
        return true;
}
}