我有一个包含端到端测试的sbt子项目。这些作为e2e:test运行。我已将配置定义为
我在同一个子项目中定义了一个标签。
object HealthCheckTest extends Tag("HealthCheckTest")
我使用HealthCheckTest
标记了我的一些端到端测试,如下所示:
it("should be able to verify the data", HealthCheckTest)
我想从命令行只运行运行状况检查测试。我试图通过以下方式做到这一点:
sbt'project e2e'e2e:testOnly - -n HealthCheckTest
但这导致所有e2e测试都在运行。我已尝试提供标记的完整路径(com.s.p.e2etests.HealthCheckTest
),但这也不起作用。
偶尔我会收到关于 - 和 - 被弃用的警告;但是,所有在线文档都说使用这种语法,包括scalatest docs。
如何才能运行我标记的e2e测试?
我还尝试为健康检查测试创建一个单独的任务,但只能根据测试类名称而不是标记来确定如何过滤。
答案 0 :(得分:2)
您发布的命令行缺少引号。试试这样:
sbt 'project e2e' 'testOnly -- -n HealthCheckTest'
sbt
可执行文件将每个参数视为在sbt
控制台中运行的整行,因此您必须在每个完整行周围放置引号。
请注意,虽然这不会运行测试用例,但将仍然实例化测试类并打印出测试用例名称。