为@SpringApplicationConfiguration 指定配置文件
Specify config file for @SpringApplicationConfiguration
目前我的集成测试是这样的:
@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
注释中更改端口,但我想避免在两个地方使用它。
非常感谢。
一个解决方案是用@WebIntegrationTest
注解指明配置文件的名称:
// ...
@WebIntegrationTest("spring.config.name=ping-facade-server")
public class PingResourceTest {
就我而言,我在 src/test/resources.
中有一个 ping-facade-server.yml 文件
目前我的集成测试是这样的:
@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
注释中更改端口,但我想避免在两个地方使用它。
非常感谢。
一个解决方案是用@WebIntegrationTest
注解指明配置文件的名称:
// ...
@WebIntegrationTest("spring.config.name=ping-facade-server")
public class PingResourceTest {
就我而言,我在 src/test/resources.
中有一个 ping-facade-server.yml 文件