简体   繁体   中英

Play 2.5: I can run test by Intelij IDEA but not with ./activator

I run fake server for batch of functional tests, fill database with evolutions. This idea works well to test in IntelijIdea, but I cannot configure CI because activator test fails...

./activator -Dconfig.resource=env_test.conf testOnly com.api.test.FunctionalTestsSuite 
[info] Loading project definition from /Users/aieremenko/pr/api/project
[info] Set current project to api (in build file:/Users/aieremenko/pr/api/)
[info] Test run started
THE FIRST
[warn] application - hardcoded value: user is deprecated, use username instead
[info] application - Creating Pool for datasource 'default'
Starting server
before provideApplication
[error] Test com.api.test.FunctionalTestsSuite failed: play.api.Configuration$$anon$1: Configuration error[null], took 0.0 sec
[error]     at play.api.Configuration$.configError(Configuration.scala:154)
[error]     at play.api.Configuration.reportError(Configuration.scala:806)
[error]     at play.Configuration.reportError(Configuration.java:366)
[error]     at play.db.ebean.DefaultEbeanConfig$EbeanConfigParser.setServerConfigDataSource(DefaultEbeanConfig.java:94)
[error]     at play.db.ebean.DefaultEbeanConfig$EbeanConfigParser.parse(DefaultEbeanConfig.java:75)
[error]     at play.db.ebean.DefaultEbeanConfig$EbeanConfigParser.get(DefaultEbeanConfig.java:56)
[error]     at play.db.ebean.DefaultEbeanConfig$EbeanConfigParser.get(DefaultEbeanConfig.java:40)
[error]     at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
[error]     at com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:72)
[error]     at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
[error]     at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:62)
[error]     at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
[error]     at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
[error]     at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
[error]     at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
[error]     at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
[error]     at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
[error]     at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
[error]     at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104)
[error]     at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
[error]     at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
[error]     at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
[error]     at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
[error]     at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
[error]     at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
[error]     at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
[error]     at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56)
[error]     at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
[error]     at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
[error]     at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
[error]     at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
[error]     at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
[error]     at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:205)
[error]     at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:199)
[error]     at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
[error]     at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:199)
[error]     at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:180)
[error]     at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
[error]     at com.google.inject.Guice.createInjector(Guice.java:96)
[error]     at com.google.inject.Guice.createInjector(Guice.java:84)
[error]     at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:181)
[error]     at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:123)
[error]     at play.api.test.FakeApplication.<init>(Fakes.scala:209)
[error]     at play.test.FakeApplication.<init>(FakeApplication.java:51)
[error]     at play.test.Helpers.fakeApplication(Helpers.java:124)
[error]     at com.dimanex.api.test.FunctionalTestsSuite$1.provideApplication(FunctionalTestsSuite.java:105)
[error]     at com.dimanex.api.test.FunctionalTestsSuite$1.startServer(FunctionalTestsSuite.java:54)
[error]     at com.dimanex.api.test.FunctionalTestsSuite$1.before(FunctionalTestsSuite.java:38)
[error]     ...
[error] Caused by: java.lang.NullPointerException
[error]     at play.db.ebean.DefaultEbeanConfig$EbeanConfigParser.setServerConfigDataSource(DefaultEbeanConfig.java:92)
[error]     ... 64 more
[info] Test run finished: 1 failed, 0 ignored, 0 total, 41.043s

I have separated files with configs for dev, prod and test mode. Tests use own database to miss possibility to hurt production server(I don't use inmemory database)....

Okay. activator just ignores -Dconfig.resource=env_test.conf for test plugin. When I use application.conf for test purposes (which is default config file) than it works. For application running it works:

./activator -Dconfig.resource=env_dev.conf run

But it's IntelijIdea runs test well with defiled -Dconfig.resource=env_test.conf. It's just funny:)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM