sbt testOnly不起作用

oht*_*oht 6 unit-testing sbt playframework

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

如果我尝试跑步

testOnly my.app.TheClassTest

从sbt内部(如JavaTestsbt test中所述),我得到以下结果:

[info]通过:总计0,失败0,错误0,通过0

[info]没有要运行的测试:testOnly

我唯一的怀疑是消息“ 没有要运行的测试test:testOnly ”不包含我尝试测试的类的名称。

如果我尝试从命令行运行它

sbt testOnly“ my.app.TheClassTest”

它运行所有测试,然后出现以下错误:

[错误]预期的ID字符

[错误]无效命令:net(类似:set,new,inspect)

[错误]预期的项目ID

[错误]预期的配置

[错误]预期为':'(如果选择配置)

[错误]预期密钥

[错误]无效的密钥:我的(类似:测试,名称,资产)

[错误] my.app.TheClassTest

我尝试了各种变体,例如testOnly TheClassTest测试my.app.TheClassTesttest:testOnly等,但结果只有很小的变化。在sbt中使用testOnly,我可以写任何我喜欢的东西,并且始终得到相同的响应。

运行所有测试工作正常。

至少有办法获得更多

And*_*ski 14

从 sbt 您可以尝试获取命令的自动完成:

sbt:my-project> testOnly <tab>
Run Code Online (Sandbox Code Playgroud)

当从命令行运行(以便外部的SBT提示),例如,在持续集成,或其他脚本等,则取在引号命令包括 参数,如下所示:

sbt "testOnly my.package.TheClassTest"
Run Code Online (Sandbox Code Playgroud)

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

  • 这让我很困惑。每一个。单身的。时间。感谢您的提醒! (2认同)

vde*_*gue 6

从sbt中,您可以尝试获取命令的自动完成:

sbt:my-project> testOnly <tab>
Run Code Online (Sandbox Code Playgroud)

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

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

  • 如果您从控制台运行而不是从 sbt 内部运行,那么不要忘记将参数作为一个整体放入“..”中,例如 `$ sbt "testOnly myPackage.myTestClass"`,或者如果您想继续监视,则: `$ sbt "~testOnly myPackage.myTestClass"` (2认同)