无法从命令行使用 org.scalatest.tools.Runner 运行 进行测试

Cannot run tests with org.scalatest.tools.Runner from command line

我将测试编译在一个目录中:samplesuite 它在 运行 使用 org.scalatest.run 设置一个套件时有效。 当我尝试 运行 包含多个套件的目录时没有任何反应。

scala -cp "..\mytestframework\target\scala-2.12\mytestframework-assembly-0.1.jar;../../Downloads/scalactic_2.12-3.0.5.jar;..\..\Downloads\scalatest_2.12-3.0.5.jar" org.scalatest.run samplesuite.SomeSpec

但在尝试时不会 运行:

    scala -cp "..\mytestframework\target\scala-2.12\mytestframework-assembly-0.1.jar;../../Downloads/scalactic_2.12-3.0.5.jar;..\..\Downloads\scalatest_2.12-3.0.5.jar" org.scalatest.tools.Runner -R samplesuite

假设测试在包 samplesuite 中定义,例如

package samplesuite
class SomeSpec extends FlatSpec with Matchers

并且当前工作目录 .samplesuite 高一级,然后 运行 发现所有带有

的套件
scala -cp "..\mytestframework\target\scala-2.12\mytestframework-assembly-0.1.jar;../../Downloads/scalactic_2.12-3.0.5.jar;..\..\Downloads\scalatest_2.12-3.0.5.jar" org.scalatest.tools.Runner -R .

一般来说,当 specifying runpath 从中发现测试时 -R 指向包开始的 root 目录,或者指向 .jar 使用 sbt test:package:

生成的文件
scala -cp target/scala-2.12/classes:scalatest_2.12-3.0.5.jar:scalactic_2.12-3.0.5.jar org.scalatest.tools.Runner -R target/scala-2.12/test-classes

scala -cp target/scala-2.12/classes:scalatest_2.12-3.0.5.jar:scalactic_2.12-3.0.5.jar org.scalatest.tools.Runner -R target/scala-2.12/how-can-i-perform-an-or-with-scalatest_2.12-0.1.0-SNAPSHOT-tests.jar