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
Was 'grails -Dgrails.env = test test-app -clean -integration', wenn Sie laufen passiert? – saw303
@ 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. –
'Grails Test Test-App-Integration' ist nicht gültig. Wahrscheinlich willst du 'grails test-app integration:' oder './gradlew iT'. –