我的目标是始终使用某些参数运行。我不想一次又一次地指定它们并希望包含在POM文件中,这样即使另一个目标调用该目标,那么这些参数也会被考虑执行。
这些参数不应该在全局范围内,因为它们仅适用于测试范围。
我在spring-boot中有一个使用配置文件的代码。如果我运行-Dspring.profiles.active=TEST
预期结果的测试。因此,需要使用failsafe:integration-test
运行-Dspring.profiles.active=TEST
目标。
答案 0 :(得分:1)
这里有两个选项:在测试中指定需要它们的活动配置文件:
@RunWith(SpringRunner.class)
@SpringBootTest
@ActiveProfiles("TEST")
public class MyServiceTest {
@Autowired
MyService myService;
@Test
public void testServiceInitialized() throws Exception {
// ...
}
这也允许IDE直接运行测试。
选项二是让故障安全插件知道将-D参数传递给测试:
http://maven.apache.org/surefire/maven-failsafe-plugin/integration-test-mojo.html#argLine
因此要么设置包含此参数的属性“argLine”,要么配置插件。使用这种方法,这些测试只能使用maven运行 - 在IDE中你可能需要重现这个配置 - 一些聪明的人会自动执行此操作。
如果你还需要告诉spring boot来启用一些配置文件,spring-boot插件可以直接允许:http://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/run-profiles.html