我正在尝试在Java Play项目中运行单个测试类,但是失败了。
如果我尝试运行
来自sbt内的testOnly my.app.TheClassTest
(如JavaTest和sbt test中所述)我得到了这样的结果:
[info]通过:总计0,失败0,错误0,通过0
[info]没有测试运行test:testOnly
我唯一怀疑的是“没有为测试运行的测试:testOnly ”的消息不包含我尝试测试的类的名称。
如果我尝试从命令行运行它
sbt testOnly“my.app.TheClassTest”
它运行所有测试,然后我收到以下错误:
[错误]预期的ID字符
[error]不是有效命令:net(类似:set,new,inspect)
[错误]预期的项目ID
[错误]预期配置
[错误]预期':'(如果选择配置)
[错误]预期密钥
[error]不是有效密钥:my(类似:test,name,assets)
[error] my.app.TheClassTest
我尝试了各种各样的变体,例如 testOnly TheClassTest ,仅测试my.app.TheClassTest , test:testOnly 等只有微小的变化结果。在sbt中使用 testOnly 我可以写出我想要的任何内容,但仍然可以得到相同的响应。
运行所有测试工作正常。
至少有一种方法可以获得更多
答案 0 :(得分:3)
从sbt开始,您可以尝试获取命令的自动完成功能:
sbt:my-project> testOnly <tab>
它应显示可用的测试类列表。这可能不适用于最早版本的sbt。
如果您没有看到任何类,请在编译测试类之前尝试运行test:compile
。
答案 1 :(得分:2)
作为补充,当您从命令行运行时(因此在sbt提示符之外),就像许多人会不断集成一样,等等,那么您需要在引号包括 参数,如下所示:
sbt "testOnly my.package.TheClassTest"
否则,testOnly似乎没有收到该参数。