2011-06-01 54 views
9

有沒有辦法在Play的dependencies.yml文件中聲明一個測試依賴項?框架?我在documentation中看不到有關測試依賴關係的任何信息。在Play中聲明測試依賴關係!

例如,我可能想使用諸如Mockito這樣的測試庫,但由於明顯的原因,沒有在生產中使用它的類。

回答

9

您似乎可以定義每播放framework ID的依賴關係,類似於您可以在application.conf文件中定義特定ID的設置。爲此,您需要爲您的依賴性定義添加額外的id屬性。

例如,如果你想只包括的Mockito核與中test框架ID的環境中,你dependencies.yml文件看起來像下面這樣:

require: 
    - org.mockito -> mockito-core 1.8.5: 
     id: test 

你能得到這個工作的時候也使用一臺機器,儘管你必須對它進行更深入的研究。當您只測試依賴性測試,您可以定義您的依賴與id: test,然後運行:

play dependencies --%test --sync 
play test 

然後,切換回生產,你會運行:

play dependencies --sync 
play run 

缺點每次在測試模式和生產模式之間切換時都必須記住同步您的依賴關係,但是我認爲,如果您想確保依賴項僅在測試模式下的類路徑上,那麼這是目前最好的做法。

+0

對不起,我還是有點困惑。只是爲了澄清,那麼我將如何聲明測試所需的mockito依賴關係,但在執行「play run」時不會使用它? (並且ID不是測試) – digiarnie 2011-06-01 05:12:07

+0

@digiarnie那麼,如果你有獨立的測試和生產環境,那麼當你調用'play dependencies'時,沒有指定ID的那個不會加載那個特定的依賴關係。如果兩個環境相同(例如,您將'play test'與'play run'調用在一起),它應該仍然可以管理,您只需同步它們之間的依賴關係即可。當我確定什麼是最佳方法時,我會更新答案。 – 2011-06-01 05:32:02

+0

好的,我明白你現在在做什麼。之前我感到困惑,因爲我認爲你的「依賴」是一個關鍵字,但你實際上是指實際的庫(我的壞)。你的建議看起來可行,但有點煩人的是必須切換id,但它似乎是目前唯一的方法。感謝您的見解。 – digiarnie 2011-06-01 07:06:02