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

Kaj*_*nus 7 scala scalatest

ScalaTest 2.0不会自动运行扩展Suite但已注释的类DoNotDiscover.但是,它"将运行带有DoNotDiscover注释的类,如果被明确要求,它就不会发现它们."

但是,我如何明确要求ScalaTest运行这样一个DoNotDiscover注释类?

尽管我通过显式指定它们,ScalaTest会忽略所有这些类test-only.示例:我有这个测试套件:

@DoNotDiscover
class AnonLoginSpecRunner
  extends org.scalatest.Suites(new AnonLoginSpec)
  with StartServerAndChromeDriverFactory
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时:

[my-project] $ test-only test.e2e.specs.AnonLoginSpecRunner
Run Code Online (Sandbox Code Playgroud)

ScalaTest说:

[info] No tests to run for securesocial/test:test-only
[info] Passed: : Total 0, Failed 0, Errors 0, Passed 0, Skipped 0
Run Code Online (Sandbox Code Playgroud)

我能做些什么来让ScalaTest运行我的AnonLoginSpecRunner

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

[debiki-server] $ test:console
scala> (new test.e2e.specs.AnonLoginSpecRunner).execute()
Run Code Online (Sandbox Code Playgroud)

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

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

eri*_*ers 3

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

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

sbt "test:run-main org.scalatest.tools.Runner -o -s
com.foo.TestFoo"
Run Code Online (Sandbox Code Playgroud)