如何告诉ScalaTest运行使用DoNotDiscover注释的类?

时间:2014-01-24 02:12:55

标签: scala scalatest

ScalaTest 2.0不会自动运行扩展Suite但已使用DoNotDiscover注释的类。但是,“如果明确要求,它将运行使用DoNotDiscover注释的类,它只是不会发现它们。”

但是,如何明确要求ScalaTest运行这样的 DoNotDiscover 带注释的类?

尽管我通过test-only明确指定了它们,但ScalaTest忽略了所有这些类。示例:我有这个测试套件:

@DoNotDiscover
class AnonLoginSpecRunner
  extends org.scalatest.Suites(new AnonLoginSpec)
  with StartServerAndChromeDriverFactory

但是当我这样做时:

[my-project] $ test-only test.e2e.specs.AnonLoginSpecRunner

ScalaTest说:

[info] No tests to run for securesocial/test:test-only
[info] Passed: : Total 0, Failed 0, Errors 0, Passed 0, Skipped 0

如何让ScalaTest运行我的AnonLoginSpecRunner

作为一种解决方法,我目前正在这样做:

[debiki-server] $ test:console
scala> (new test.e2e.specs.AnonLoginSpecRunner).execute()

这是有效的,但它有点麻烦,我想避免它。

(我使用@DoNotDiscover的原因是我有一个主套件,一劳永逸地设置Chrome驱动程序,然后运行所有E2E测试规范的列表。)

1 个答案:

答案 0 :(得分:1)

我想出的解决方案是创建一个shell脚本,通过ScalaTest" Runner",通过SBT运行测试

所以一个简单的./sbtTestFoo.sh脚本看起来像:

sbt "test:run-main org.scalatest.tools.Runner -o -s
com.foo.TestFoo"