anu*_*uni 5 scala sbt scalatest
我通常在我的 CI 中执行以下命令:
干净更新编译测试发布
但是,我想从 sbt 命令行中排除 1 个(或几个)测试类。
我怎样才能做到这一点?(我不想更改我的代码以使用忽略等)
只是为了详细说明上面建议的两个正确选项@Gonfva:
要使用testOnly你应该运行:
sbt "testOnly org.fully.qualified.domainn.name.ASpec"
Run Code Online (Sandbox Code Playgroud)
当参数是类的 FQDN 时。您可以使用多个类,并用空格分隔它们。这也可以与 glob 一起使用。例如:
sbt "testOnly *ASpec"
Run Code Online (Sandbox Code Playgroud)
使用标签。首先,定义一个标签:
import org.scalatest.Tag
object CustomTag extends Tag("tagName")
Run Code Online (Sandbox Code Playgroud)
然后,使用此标签定义测试:
it should "test1" taggedAs CustomTag in { println("test1") }
Run Code Online (Sandbox Code Playgroud)
现在,为了包含使用此标签的测试,请运行:
sbt "testOnly * -- -n tagName"
Run Code Online (Sandbox Code Playgroud)
注:* 为通配符。它可以是第 1 节中描述的任何 glob。
为了排除此标签,您需要运行:
sbt "testOnly * -- -l aaa"
Run Code Online (Sandbox Code Playgroud)