我有一个使用Spring Boot开发的Spring MVC应用程序。顺便说一下,这个应用程序仅用于学习目的。
默认情况下,应用程序启动并使用MySQL数据库。对于单元和集成测试,我使用内存中的H2数据库,它运行良好。
为此,我有两个application.properties。一个在 /src/main/resources/application.properties 下。
spring.datasource.driver-class-name = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost/myDatabase
spring.datasource.username = root
spring.datasource.password = mysql
spring.thymeleaf.mode=LEGACYHTML5
spring.thymeleaf.cache=false
/src/test/resources/application.properties
下的其他application.propertiesspring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE"
spring.datasource.username=sa
spring.datasource.password=sa
现在,我必须使用Selenium进行自动化网站测试,并且我不希望我的MySQL数据库填充测试数据。
我之前没有在Spring工作过,但我希望我的应用程序能够像这样工作:
如何使用application.properties或其他配置在Spring Boot Application中执行此操作?
答案 0 :(得分:0)
Spring应该自动为你做这件事。要在运行测试时从src / test / resources运行application.properties,因为spring运行时使用“test”配置文件。如果没有,请在测试类中添加@ActiveProfiles("test")
注释(我指的是您进行测试的类,而不是测试中的类)。如果这不起作用,您可以将src / test / resources / application.properties重命名为src / test / resources / application-test.properties并在运行配置中选择您的配置文件(有一个名为'profile'的字段)。 Reference和more info。
答案 1 :(得分:0)
application-test.properties
的单独属性文件,并将其放在/src/test/resources
下。测试数据库属性(或任何其他测试特定属性)应该放在这里。在测试类的顶部,使用此批注@ActiveProfiles("test")
。
@ActiveProfiles("test")
public class MyTest {
...
}