目前我的集成测试如下所示:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = PingFacadeApplication.class)
@WebIntegrationTest
public class PingResourceTest {
// some tests that use RestTemplate to contact PingFacadeApplication
}
PingFacadeApplication
的定义如下:
@SpringBootApplication
@EnableDiscoveryClient
@ComponentScan(basePackages = "edu.self.myapp.ping")
public class PingFacadeApplication {
public static void main(String[] args) {
System.setProperty("spring.config.name", "ping-facade-server");
SpringApplication.run(PingFacadeApplication.class, args);
}
}
正常启动(即运行jar)PingFacadeApplication
时,从ping-facade-server.yml
正确读取配置文件(src/main/resources
)。但是,在运行我的集成测试时,配置文件似乎永远不会被读取,因为服务器总是在端口8080上启动。我也尝试将配置文件放在src/test/resources
但没有运气。
我知道我可以更改WebIntegrationTest
注释中的端口,但我想避免在两个地方使用它。
非常感谢。
答案 0 :(得分:0)
解决方案是使用@WebIntegrationTest
注释指示配置文件的名称:
// ...
@WebIntegrationTest("spring.config.name=ping-facade-server")
public class PingResourceTest {
在我的情况下,我在src / test / resources中有一个ping-facade-server.yml文件。