Bob*_*har 5 scala sbt scalatest
我是 SBT 和 scalatest 的新手,但想知道如何让我的一些org.scalatest._测试仅“按需”执行。
在 SBT 中,我可以调用所有单元测试(例如)sbt:Sprout> test,或所有集成测试(例如)sbt:Sprout> it:test。我需要一种注释测试的方法,允许调用sbt:Sprout test跳过它们,但使用其他一些调用仅执行这些测试。Scalatest 文档谈到了一些sbt:Sprout> test-only *RedSuite调用来允许我对我的测试进行“分类”,但不清楚如何利用它,这样它们就不会作为单元测试运行。 org.scalatest.Tag仅 s 并不能摆脱当 时执行的“默认” sbt:Sprout> test。除非明确调用,否则我需要这些ignored。
通过 SBT 在 ScalaTest 中可以实现此用例吗?
您可以指定要在运行中包含或排除的测试的标签名称。要指定要包含的标签,请使用 -n 后跟要包含的标签名称列表。同样,要指定要排除的标签,请使用 -l 后跟要排除的标签名称列表
(请在此处查看官方文档中的更多信息)。
例如:
package com.test
import org.scalatest.FlatSpec
import org.scalatest.Tag
object IncludeTest extends Tag("com.tags.Include")
object ExcludeTest extends Tag("com.tags.Exclude")
class TestSuite extends FlatSpec {
"Test1" taggedAs(IncludeTest) in {
val sum = 1 + 1
assert(sum === 2)
}
"Test2" taggedAs(ExcludeTest) in {
val minus = 2 - 1
assert(minus === 1)
}
}
Run Code Online (Sandbox Code Playgroud)
要包含IncludeTest和排除ExcludeTest标签,您应该执行以下操作:
test-only org.* -- -n com.tags.Include -l com.tags.Exclude
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1116 次 |
| 最近记录: |