Run Test Play!Cadre - L'utilisateur de DataSource est null
-
12-12-2019 - |
Question
Bonjour J'essaie d'exécuter un test simple dans une application Web en utilisant Jouer!Cadre, mais j'ai eu une erreur:
[info] RouteTest
[error] Test RouteTest.testRouteActivityIndex failed: DataSource user is null?
[error] at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.<init>(DataSourcePool.java:198)
[error] at com.avaje.ebeaninternal.server.lib.sql.DataSourceManager.getDataSource(DataSourceManager.java:210)
[error] at com.avaje.ebeaninternal.server.lib.sql.DataSourceGlobalManager.getDataSource(DataSourceGlobalManager.java:63)
[error] at com.avaje.ebeaninternal.server.core.DefaultServerFactory.getDataSourceFromConfig(DefaultServerFactory.java:427)
[error] at com.avaje.ebeaninternal.server.core.DefaultServerFactory.setDataSource(DefaultServerFactory.java:388)
[error] at com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:168)
[error] at com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:125)
[error] at com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:64)
[error] at com.avaje.ebean.EbeanServerFactory.create(EbeanServerFactory.java:64)
[error] at com.avaje.ebean.Ebean$ServerManager.getWithCreate(Ebean.java:237)
[error] at com.avaje.ebean.Ebean$ServerManager.get(Ebean.java:224)
[error] at com.avaje.ebean.Ebean$ServerManager.access$200(Ebean.java:159)
[error] at com.avaje.ebean.Ebean.getServer(Ebean.java:288)
[error] at play.db.ebean.Model$Finder.server(Model.java:216)
[error] at play.db.ebean.Model$Finder.all(Model.java:230)
[error] at models.Activity.all(Activity.java:29)
[error] at controllers.Application.activities(Application.java:18)
[error] at Routes$$anonfun$routes$1$$anonfun$apply$5$$anonfun$apply$6.apply(routes_routing.scala:60)
[error] at Routes$$anonfun$routes$1$$anonfun$apply$5$$anonfun$apply$6.apply(routes_routing.scala:60)
[error] at play.core.Router$HandlerInvoker$$anon$4$$anon$1.invocation(Router.scala:1086)
[error] at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:33)
[error] at play.core.j.JavaAction$class.apply(JavaAction.scala:74)
[error] at play.core.Router$HandlerInvoker$$anon$4$$anon$1.apply(Router.scala:1085)
[error] at play.test.Helpers.invokeHandler(Helpers.java:34)
[error] at play.test.Helpers.routeAndCall(Helpers.java:246)
[error] at play.test.Helpers.routeAndCall(Helpers.java:231)
[error] at RouteTest.testRouteActivityIndex(RouteTest.java:14)
[error] ...
[info] x RouteTest.testRouteActivityIndex
Le code de test est:
@Test
public void testRouteActivityIndex(){
Result result = routeAndCall(fakeRequest(GET, "/activities"));
Assert.assertNotNull(result);
}
J'ai essayé de rechercher l'erreur, mais n'a rien trouvé très utile pour ce cas, même la pièce du site!.Quelqu'un a traversé cela?
La solution
Votre action /activities
fait probablement quelques appels à la DB.
Vous devez donc faire votre test dans une fausse application en cours d'exécution, comme expliqué dans la section "Exécution d'une fausse application" de cette documentation: http://www.playframework.org/documentation/2.0.3/javateest
Et n'oubliez pas d'importer l'aide statique:
import static play.test.Helpers.*;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow