我想编写一个调用远程服务器并验证响应的测试,因为服务器可能会发生变化(它不在我的控制之下)。为此,我想我会给它一个标签( RemoteTest
),然后在调用 runner 时将其排除:
sbt> test-only * -- -l RemoteTest
但是,在执行此操作时,我的所有测试都会运行,包括RemoteTest
. 如何从 sbt 中调用 runner 以将其排除在外?
我想编写一个调用远程服务器并验证响应的测试,因为服务器可能会发生变化(它不在我的控制之下)。为此,我想我会给它一个标签( RemoteTest
),然后在调用 runner 时将其排除:
sbt> test-only * -- -l RemoteTest
但是,在执行此操作时,我的所有测试都会运行,包括RemoteTest
. 如何从 sbt 中调用 runner 以将其排除在外?
如果您有以下情况:-
package com.test
import org.scalatest.FlatSpec
import org.scalatest.Tag
object SlowTest extends Tag("com.mycompany.tags.SlowTest")
object DbTest extends Tag("com.mycompany.tags.DbTest")
class TestSuite extends FlatSpec {
"The Scala language" must "add correctly" taggedAs(SlowTest) in {
val sum = 1 + 1
assert(sum === 2)
}
it must "subtract correctly" taggedAs(SlowTest, DbTest) in {
val diff = 4 - 1
assert(diff === 3)
}
}
要排除 DbTest 标记,您将执行以下操作:-
test-only * -- -l com.mycompany.tags.DbTest
请注意,您需要包含完整的标签名称。如果它仍然对您不起作用,您介意分享部分不起作用的源代码吗?