我正在使用一个spring启动应用程序,它运行我的src/main/resources/config/application。yml。
当我通过以下方式运行测试用例时:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
@IntegrationTest
public class MyIntTest{
}
测试代码仍在运行我的应用程序。要加载属性的yml文件。我想知道是否有可能再运行一个*。运行测试用例时的yml文件。
您可以使用@TestPropertySource
加载不同的属性/yaml文件
@TestPropertySource(locations="classpath:test.properties")
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(Application.class)
public class MyIntTest{
}
或者,如果只想覆盖特定属性/yaml,则可以使用
@TestPropertySource(
properties = {
"spring.jpa.hibernate.ddl-auto=validate",
"liquibase.enabled=false"
}
)
您可以在src/test/Resources/config/application.yml
文件中设置测试属性。Spring Boot测试用例将从测试目录中的application.yml
文件中获取属性。
config
文件夹是在Spring Boot中预定义的。
根据文件:
如果你不喜欢这个应用程序。属性作为配置文件名,您可以通过指定spring切换到另一个文件名。配置。命名环境属性。也可以使用Spring来引用显式位置。配置。位置环境属性(以逗号分隔的目录位置或文件路径列表)。以下示例显示了如何指定不同的文件名:
java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties
这同样适用于应用程序。yml
文档:
https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-具有外部配置应用程序属性文件
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-具有外部配置应用程序属性文件
一种选择是使用配置文件。创建一个名为application-test.yml的文件,将这些测试所需的所有属性移动到该文件中,然后将@ActiveProfile
注释添加到测试类中:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
@IntegrationTest
@ActiveProfiles("test") // Like this
public class MyIntTest{
}
请注意,它将额外加载应用程序测试。yml,所以应用程序中的所有属性。yml也将继续应用。如果您不想这样做,那么也可以使用这些配置文件,或者在应用程序测试中重写它们。yml。
使用spring-boot时,一切工作都很好。尽管如此,在spring-boot中已删除了注释和。我试图将代码重构为新版本,但我做不到。对于以下测试,我的应用程序在测试之前没有启动,http://localhost:8080返回404: 如何重构测试以使其在Spring-Boot1.5中工作?
我的SpringBoot应用程序中有一个控制器: 我想在mocks的帮助下,将其与服务分开进行测试。如何实施?
集成测试: 当我偶尔运行这个测试时,一切都很好,但是当我和其他测试一起运行它时,没有使用模拟的ServerThroughRabbitMQ,所以一些spring缓存强制使用旧的rabbit侦听器。 我试图调试它,我可以看到,正确的bean被autowired到测试中,但由于某些原因旧监听器使用(旧bean字段instanceID=1新mocked bean instanceID=3),测试失败(不确
我在我的src/test/resources路径中创建了一个application-integrationtest.yaml,所以我的测试是针对创建的docker TestContainer运行的。问题是没有加载我的application-integrationtest.yaml。 我正在运行一个SpringBoot2.x应用程序 原因:org.springframework.beans.Bean
这是一个与工作相关的web应用程序,使用Spring Boot 1.5.18,Cucumber 4.2.2。 目录结构是src/main/java,用于我所有的java类和包,src/main/resources以及application.properties和其他一些目录结构,一个具有环境日志和安全属性的根级文件夹。然后,我有src/test/java和我的cucumber代码,还有src/te
我有一个java应用程序(没有Spring)。此应用程序的副本在另一台服务器上工作,另一个数据库实例。数据库表“设置”有属性主Y或N(用于副本)。在主上的任何操作后,我向kafka发送消息,kafka向副本发送操作,并使用db更新操作。测试此过程的整个周期有什么想法吗? 我使用测试容器来获取kafka和数据库。但是我不知道如何在测试容器实例中启动我的db应用程序。