Grails 3: интеграционные тесты выполняются в среде разработки, а не в тестовой среде
Я отделил dataSourceConfig.yml
файл конфигурации базы данных:
environments:
development:
dataSource:
dbCreate: none
url: jdbc:oracle:thin:xxxxxx
driverClassName: oracle.jdbc.OracleDriver
dialect: org.hibernate.dialect.Oracle10gDialect
username: xxxx
password: xxxx
test:
dataSource:
dbCreate: none
url: jdbc:oracle:thin:xxxxx
driverClassName: oracle.jdbc.OracleDriver
dialect: org.hibernate.dialect.Oracle10gDialect
username: xxxxx
password: xxxxx
Который я подключаю к проекту в Application.java
:
class Application extends GrailsAutoConfiguration implements EnvironmentAware {
static void main(String[] args) {
GrailsApp.run(Application, args)
}
@Override
void setEnvironment(Environment environment) {
String configPath = environment.getProperty("local.config.location")
Resource resourceConfig = new FileSystemResource(configPath)
YamlPropertiesFactoryBean ypfb = new YamlPropertiesFactoryBean()
ypfb.setResources([resourceConfig] as Resource[])
ypfb.afterPropertiesSet()
Properties properties = ypfb.getObject()
environment.propertySources.addFirst(new PropertiesPropertySource("local.config.location", properties))
}
}
Когда я запускаю интеграционные тесты через Intellij IDEA 15, он запускает тесты в среде разработки , но конфигурационный файл YAML имеет раздел test .
Кто-нибудь знает, как это исправить? Командный рев не помогает.
grails test test-app -integration
1 ответ:
Если вы собираетесь запускать тесты из IDE, вам нужно изменить конфигурацию запуска, чтобы включить
-Dgrails.env=test
. Вы захотите сделать это для конфигурации запуска JUnit по умолчанию, поэтому вам не придется редактировать каждую конфигурацию запуска теста. Имейте в виду, что изменение конфигурации запуска JUnit по умолчанию повлияет на все конфигурации, которые будут созданы в будущем, но не обновит существующие конфигурации. Вы можете удалить все существующие конфигурации запуска, чтобы они были воссозданы с новыми настройками при следующем запуске. тесты.