2016-03-22 2 views
5

I dataSourceConfig.yml Datenbank-Konfigurationsdatei getrennt haben:Grails 3: Integrationstests in einer Entwicklungsumgebung laufen, nicht in einer Testumgebung

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 

Was ich in der Application.java dem Projekt anschließen:

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)) 
    } 
} 

Wenn ich Integrationstests über IntelliJ IDEA 15 ausführen, wird es Tests an einer Entwicklung Umgebung, aber die YAML-Konfigurationsdatei hat Test Abschnitt .

Ist jemand weiß, wie dieses Problem beheben? Der Befehl unten hilft nicht.

grails test test-app -integration 
+0

Was 'grails -Dgrails.env = test test-app -clean -integration', wenn Sie laufen passiert? – saw303

+1

@ saw303 Bei der Ausführung der Tests mit 'grails' oder' gradle' Sie sollten nicht angeben müssen '-Dgrails.env = test'. Dies sollte nur erforderlich sein, wenn Sie von der IDE aus mit den integrierten Run-Config-Funktionen der IDE arbeiten. –

+0

'Grails Test Test-App-Integration' ist nicht gültig. Wahrscheinlich willst du 'grails test-app integration:' oder './gradlew iT'. –

Antwort

7

Wenn Sie vorhaben, Tests aus der IDE Sie die config ändern müssen laufen -Dgrails.env=test aufzunehmen. Sie sollten dies für die Standard-JUnit-Run-Konfiguration tun, damit Sie nicht jede einzelne Testlauf-Konfiguration bearbeiten müssen. Beachten Sie, dass die Bearbeitung der Standard JUnit config alle configs auswirken wird, die in der Zukunft geschaffen werden aber keine vorhandenen Konfigurationen aktualisieren. Möglicherweise möchten Sie alle vorhandenen Ausführungskonfigurationen entfernen, damit sie beim nächsten Ausführen dieser Tests mit den neuen Einstellungen erneut erstellt werden.

+0

ich spreche über die Ausführungskonfiguration innerhalb des IDE, nicht alles, was Sie in einer Grails-Konfigurationsdatei angeben. –

Verwandte Themen