2012-10-01 35 views
2

您好,我正在嘗試在使用Play的網絡應用程序中運行一個簡單的測試!框架,但我得到了一個錯誤:運行測試玩!框架 - 數據源用戶爲空

[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 

測試的代碼是:

@Test 
public void testRouteActivityIndex(){ 
    Result result = routeAndCall(fakeRequest(GET, "/activities")); 
    Assert.assertNotNull(result); 
} 

我想研究的錯誤,但沒有發現任何這種情況下非常有用,甚至現場的發揮! 。有人經歷過這個?

回答

3

您的/activities操作可能會對數據庫進行一些調用。

所以你應該讓你的測試在運行的應用程序假作爲本文檔的「在運行一個假的應用程序」一節中解釋說:http://www.playframework.org/documentation/2.0.3/JavaTest

而且不要忘記導入靜態輔助:

import static play.test.Helpers.*; 
+0

非常感謝,我在網站上看到了這種方法,但出於某種奇怪的原因,我忽略了它。對不起。再次感謝。 – elf

相關問題