2011-08-15 84 views
2

我正在寫一個硒測試使用玩!框架和一些測試有相同的位。我想把這些常見的比特拉成一個Play!標籤。在生產代碼中,標籤可以在app/views/tags之下生存。但是,標籤的存在只能在測試模板中看到?創建Play!硒測試框架標籤只

我試圖把我的標籤下測試/標籤測試/視圖/標籤,但兩種方式導致錯誤:

The template tags/Login.html or tags/Login.tag does not exist. 

如果我把這個標籤之下應用程序/視圖/標籤它工作正常。但顯然這個標籤僅用於測試目的。

回答

2

標籤必須在app/views /標籤(它的任何子文件夾),否則播放不會得到它們。你可以使用這個路徑:app/views/tags/testing並且在那裏放置只有測試的標籤,所以開發人員不知道使用它們。

要在該文件夾使用使用標籤演示:

#{testing.Demo /} 

如果你想在生產中禁用它們(額外的安全)檢查this API。添加到您的標記是這樣的:

#{if play.mode.isDev()} 
    tag code 
#{/if} 
+0

我試過了if語句,但是它返回錯誤:引發的異常是MissingMethodException:沒有方法的簽名:static play.Play $ Mode.isDev()適用於參數類型:()。我將它改爲#{if play.mode.name()=='D​​EV'},它起作用。我更喜歡你的解決方案,因爲它更清潔,但它有什麼想法,爲什麼它會給出錯誤? – digiarnie

+0

mmm play是模板中的「默認」對象,如果您的修改正在使用它。我只注意到isDev()不是靜態的(我的不好!),所以可能它應該像#{if play.mode.isDev()} –

0

據我所知標記必須在app/views/tags或任何子文件夾下。如何確定您可以在模塊中定義標籤並僅在測試模式下導入。有點複雜但乾淨。