2017-04-25 27 views
-2

我已經廣泛地使用了SpringCloudContract。這是非常有效的TDD。我想在實際部署期間驗證合同。我有n個微服務(Spring流:源/處理器/接收器),並希望允許用戶在數據流服務器儀表板中定義流(kafka)時將它們鏈接起來。我通過流中的某個對象作爲 輸入/輸出用於微服務。我想檢查微服務的兼容性並相應地提醒用戶。 SpringCloudContract便於在開發時驗證合同,而不是運行時。部署Spring雲合同驗證

請幫忙。

回答

0

我是新來春雲合同,但我已經找到一種方法來啓動StubRunner但是當它觸發我獲得以下證書。

2017年4月26日16:14:10373 INFO主cssContractTester:36 - ContractTester:consumerMessageListener >>>>>>>>>>>>>>>>>>>>>>>>>> >> [email protected]13f156 2017年4月26日16:14:10503 ERROR主osccvmsStreamStubMessages:63 - 同時嘗試發送消息時發生異常[GenericMessage [有效載荷= { 「名稱」 : 「第一」, 「描述」: 「有效」, 「值」:1},標題= {ID = 49c6cc5c-93c8-2498-934a-175f60f42c03,時間戳= 1493203450482}]],與名稱[驗證的信道] org.springframework.messaging.MessageDeliveryException:調度程序沒有用於通道'application.input'的訂閱者。嵌套異常是org.springframework.integration.MessageDispatchingException:分派器沒有訂閱者,failedMessage = GenericMessage [payload = {「name」:「First」,「description」:「Valid」,「value」:1},headers = {id = 49c6cc5c-93c8-2498-934a-175f60f42c03,時間戳= 1493203450482}] 在org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:93) 在org.springframework.integration.channel.AbstractMessageChannel.send( AbstractMessageChannel.java:423) at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:373) at org.springframework.cloud.contract.verifier.messaging.stream.StreamStubMessages.send(StreamStubMessages.java: 60) at 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; 
} 
}