2011-09-01 52 views
0

我在測試包中有一個由BasicTest.java加載的yaml文件,這會在內存數據庫的h2中按預期創建db數據。當我將BasicTest.java移動到一個子包時,例如test.unit,它不起作用。 yaml文件已找到,但數據未創建。需要改變以解決這個問題?玩!從測試包中加載yaml的框架

我的測試設置如下所示。

@Before 
public void setUp() { 
    Fixtures.deleteAllModels(); 
    Fixtures.loadModels("data.yml"); 
} 
+0

這似乎是一個錯誤。你能提供控制檯輸出嗎? –

+0

控制檯輸出是標準票價,即連接到jdbc:h2:mem ...., –

+0

woops,在那裏沒有完成。所以控制檯的輸出是在端口9000上偵聽HTTP,連接到jdbc:h2:mem,現在應用程序已經啓動等等。我正在使用模式,所以我在application.conf中有這個:%test.db.url = jdbc: h2:mem:play; MODE = MYSQL; LOCK_MODE = 0; INIT = CREATE SCHEMA如果不存在MYSCHEMA。如前所述,當我在測試中的默認包中有BasicTest.java時,它可以無縫工作,當我將它移入子包時,該表創建但未填充。在這兩種情況下,它都是找到data.yml文件。 –

回答

0

在嘗試加載之前嘗試添加路徑到您的「yml」以播放框架內部PATH。示例(文件路徑與應用程序路徑有關):

VirtualFile appRoot = VirtualFile.open(Play.applicationPath); 
Play.javaPath.add(0, appRoot.child("test/sub/packages/data.yml")); 
+0

謝謝,但是我在使用你的建議時仍然面臨同樣的問題。 –

+0

我犯了一個錯誤:路徑應該相對於應用程序根目錄:像myapp/test/some/packages/data.yml的'test/some/packages/data.yml'。你嘗試過這種方式嗎? –

+0

(只是檢查) –