【发布时间】:2019-05-21 02:57:11
【问题描述】:
使用 jUnit5 时,我无法让协议提供程序测试在 8080 以外的任何其他端口上运行。我有以下代码:
@ExtendWith(SpringExtension.class)
@Provider(PROVIDER)
@PactFolder("pacts")
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class PactProviderTest {
@LocalServerPort private int serverPort;
@Autowired Result<IServiceManagementFacade2> serviceManagementFacade;
@Autowired private RestServiceFactory restServiceFactory;
@TestTemplate
@ExtendWith(PactVerificationInvocationContextProvider.class)
void pactVerificationTestTemplate(PactVerificationContext context) {
context.setTarget(new HttpTestTarget("localhost", serverPort));
context.verifyInteraction();
}
当我运行它时,我收到以下错误:
Request Failed - Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused (Connection refused)
如果我改变了
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
到
@SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT)
测试通过。但是在测试期间,没有其他应用程序可以在该端口上运行,这在测试环境中是不可接受的。有什么想法可以解决这个问题吗?
【问题讨论】:
标签: spring-boot testing junit5 pact