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 5

1 ответ:

Если вы собираетесь запускать тесты из IDE, вам нужно изменить конфигурацию запуска, чтобы включить -Dgrails.env=test. Вы захотите сделать это для конфигурации запуска JUnit по умолчанию, поэтому вам не придется редактировать каждую конфигурацию запуска теста. Имейте в виду, что изменение конфигурации запуска JUnit по умолчанию повлияет на все конфигурации, которые будут созданы в будущем, но не обновит существующие конфигурации. Вы можете удалить все существующие конфигурации запуска, чтобы они были воссозданы с новыми настройками при следующем запуске. тесты.