很明显,人们希望将单个测试作为参数传递给仅测试,以便您可以执行文档所说的内容:运行一个测试。
但是你怎么做的?在java中,您可能有一个UserTest类,它扩展了WithApplication并在User模型上定义了一系列测试(每个测试使用@Test)。
您想说
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
那你怎么只运行一次测试?
答案 0 :(得分:8)
是的,SBT仅支持类名粒度。原因是SBT支持的大多数测试框架每次测试不使用一种方法,他们使用DSL进行测试,例如specs2测试看起来像这样:
"The plus sign" should {
"add two numbers" in {
2 + 3 === 5
}
"be communatative" in {
1 + 2 === 2 + 1
}
}
事实上,这些规范可以任意嵌套,它们可以具有相同的名称,它们可以被参数化和任意重复使用等,以指定单个测试并理解应该从中做什么。命令行没有意义。因此,SBT刚刚提供了对所有测试框架中有意义的支持,以及类名称粒度。
答案 1 :(得分:1)
我找到了“一个”答案,这不是我所期待的。
你可以说
仅测试模型.UserTest
并且它将“正常工作”......也就是说,它将在UserTest中“仅”运行所有那些测试(因此不会运行所有其他测试类,这有点帮助)。
但看起来你做不到
仅测试模型.UserTest.createAUser
只测试那一个测试。
咦!