我有一些消费者合同测试应该在 Jenkins 上以离线模式运行,因为生产者和消费者 API 使用服务器上相同的本地 Maven 存储库,如果他们尝试下载生产者的存根,测试会崩溃。已经在本地了。但是在本地,它们应该被禁用或在在线模式下运行,因为生产者 API 非常稳定并且接口很少更改。
我已经准备了一个解决方法,但可能有更好的方法来做到这一点。我的解决方案是:
1) 将消费者的测试配置为使用 workOffline = true 运行
2) 将此代码添加到测试类,以便在未设置系统属性“runContractTests”时禁用合约测试:
@BeforeClass
public static void checkContractTestsAreEnabled() throws IOException {
boolean runContractTests = Boolean.parseBoolean(System.getProperty("runContractTests"));
assumeTrue(runContractTests);
}
3) 在 Jenkins 上运行这样的测试:
mvn clean verify -DrunContractTests=true
有什么更好的方法建议吗?