sbt testOnly不工作

时间:2018-06-05 13:42:50

标签: unit-testing playframework sbt

我正在尝试在Java Play项目中运行单个测试类,但是失败了。

如果我尝试运行

  

testOnly my.app.TheClassTest

来自sbt内的

(如JavaTestsbt 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 我可以写出我想要的任何内容,但仍然可以得到相同的响应。

运行所有测试工作正常。

至少有一种方法可以获得更多

2 个答案:

答案 0 :(得分:3)

从sbt开始,您可以尝试获取命令的自动完成功能:

sbt:my-project> testOnly <tab>

它应显示可用的测试类列表。这可能不适用于最早版本的sbt。

如果您没有看到任何类,请在编译测试类之前尝试运行test:compile

答案 1 :(得分:2)

作为补充,当您从命令行运行时(因此在sbt提示符之外),就像许多人会不断集成一样,等等,那么您需要在引号包括 参数,如下所示:

sbt "testOnly my.package.TheClassTest"

否则,testOnly似乎没有收到该参数。