2011-06-01 75 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

相关问题