Java 如何指定play framework';s";“仅测试”;命令
很明显,我们希望只通过一个测试作为一个参数进行测试,这样您就可以按照文档中的说明进行操作:运行一个测试 但是你是怎么做到的?在java中,您可能有一个类UserTest,它通过应用程序进行扩展,并在用户模型上定义了一系列测试(使用@Test for each) 你想说Java 如何指定play framework';s";“仅测试”;命令,java,unit-testing,junit,playframework-2.0,Java,Unit Testing,Junit,Playframework 2.0,很明显,我们希望只通过一个测试作为一个参数进行测试,这样您就可以按照文档中的说明进行操作:运行一个测试 但是你是怎么做到的?在java中,您可能有一个类UserTest,它通过应用程序进行扩展,并在用户模型上定义了一系列测试(使用@Test for each) 你想说 test-only models.UserTest.createAUser 但只有测试才能告诉你 [info] Passed: Total 0, Failed 0, Errors 0, Passed 0 [info] No te
test-only models.UserTest.createAUser
但只有测试才能告诉你
[info] Passed: Total 0, Failed 0, Errors 0, Passed 0
[info] No tests to run for test:testOnly
[success] Total time: 0 s
那么,如何只运行一个测试呢?我找到了一个“答案”,这不是我所期望的
你可以说
仅测试模型。UserTest
它会“起作用”。。。也就是说,它将“仅”运行UserTest中的所有这些测试(因此不会运行其他所有测试类,这有点帮助)
但看起来你做不到
仅测试models.UserTest.createAUser
只测试那一个测试
啊! 是,SBT只支持类名粒度。这是因为SBT支持的大多数测试框架不在每个测试中使用一种方法,它们使用DSL进行测试,例如specs2测试如下所示:
"The plus sign" should {
"add two numbers" in {
2 + 3 === 5
}
"be communatative" in {
1 + 2 === 2 + 1
}
}
事实上,这些规范可以嵌套任意深,它们可以彼此具有相同的名称,它们可以任意参数化和重用,等等,以至于从命令行指定单个测试并理解应该做什么是没有意义的。因此,SBT刚刚提供了对所有测试框架中有意义的东西的支持,即类名粒度。很高兴知道,谢谢!我可能会试图找到一些文件,我可以更新与此提示!这是我所见过的关于为什么存在这种限制的最好解释。谢谢詹姆斯,我一直在想为什么这个限制会存在一段时间了!