传递TestPropertySource位置没有影响



我正试图将test.properties文件传递给@TestPropertySource注释,如下所示:

@SpringBootTest
@TestPropertySource(locations = "classpath:test.properties")
public class ApplicationTests {
@Test
public void contextLoads() {
}
@Test
public void main() {
Application.main(new String[] {});
}
}

我然后调用主应用程序,希望test.properties将被采取。Application.main是一个标准的引导应用程序:

@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

也许我误解了@TestPropertySource的预期目的?

谢谢你的帮助

下面是写在文档:

@TestPropertySource是一个类级别的注释,用于配置属性文件的locations()和内联属性()添加到环境的属性资源集集成测试的应用程序上下文。

所以基本上,测试属性源可以被用来选择性地覆盖属性在系统和应用程序属性源中定义。

如果将@TestPropertySource声明为空注释(即,没有显式的locations()或properties()值),则将尝试检测相对于声明注释的类的默认属性文件。例如,如果带注释的测试类是com.example.MyTest,对应的默认属性文件是"classpath:com/example/MyTest.properties"。如果无法检测到默认值,则抛出一个IllegalStateException

在您的例子中,文件test.properties应该放在resources文件夹中。

你可以检查这个例子,看看它是如何工作的。

相关内容

  • 没有找到相关文章

最新更新