我通常在我的配置文件中执行以下命令:清除更新编译测试发布然而,我想从SBT命令行中排除一个(或几个)测试类。我怎么能这样做呢?(我不想将代码更改为使用忽略等)
mhd8tkvw1#
两种可能的选择1.test-only见http://www.scalatest.org/user_guide/using_scalatest_with_sbt1.标签http://www.scalatest.org/user_guide/tagging_your_tests
test-only
kxxlusnw2#
仅就上面建议的两个正确选项@Gonfva进行详细说明:1.要使用testOnly,您应该运行:
testOnly
sbt "testOnly org.fully.qualified.domainn.name.ASpec"
当参数是类的FQDN时。您可以使用多个类,用空格将它们隔开。这也可以与GLOB一起使用。例如:
sbt "testOnly *ASpec"
1.使用标签。首先,定义一个标记:
import org.scalatest.Tag object CustomTag extends Tag("tagName")
然后,使用此标记定义一个测试:
it should "test1" taggedAs CustomTag in { println("test1") }
现在,为了包含使用此标记的测试,请运行:
sbt "testOnly * -- -n tagName"
注:*是一个通配符。它可以是第1节中描述的任何全局。要排除此标记,您需要运行:
sbt "testOnly * -- -l aaa"
x33g5p2x3#
包括或排除测试取决于您正在使用的测试框架。您将在SBT中使用的命令不是完全由SBT解析的,而是部分由SBT解析的,部分由您使用的测试框架解析。因此,如果您要起诉scalameta/munit,您可以输入如下命令:
sbt> myproject/Test/testOnly MyProjectTest -- --exclude-tags=tag1,tag2,tag3
如果您使用的是另一个测试框架,则--之后的特定语法可能会有所不同。显然,当您编写测试用例时,您必须在某个地方添加标记。更多详细信息可在下面找到:
--
3条答案
按热度按时间mhd8tkvw1#
两种可能的选择
1.
test-only
见http://www.scalatest.org/user_guide/using_scalatest_with_sbt1.标签http://www.scalatest.org/user_guide/tagging_your_tests
kxxlusnw2#
仅就上面建议的两个正确选项@Gonfva进行详细说明:
1.要使用
testOnly
,您应该运行:当参数是类的FQDN时。您可以使用多个类,用空格将它们隔开。这也可以与GLOB一起使用。例如:
1.使用标签。首先,定义一个标记:
然后,使用此标记定义一个测试:
现在,为了包含使用此标记的测试,请运行:
注:*是一个通配符。它可以是第1节中描述的任何全局。
要排除此标记,您需要运行:
x33g5p2x3#
包括或排除测试取决于您正在使用的测试框架。您将在SBT中使用的命令不是完全由SBT解析的,而是部分由SBT解析的,部分由您使用的测试框架解析。
因此,如果您要起诉scalameta/munit,您可以输入如下命令:
如果您使用的是另一个测试框架,则
--
之后的特定语法可能会有所不同。显然,当您编写测试用例时,您必须在某个地方添加标记。更多详细信息可在下面找到: