首页 > 解决方案 > 无法从命令行使用 org.scalatest.tools.Runner 运行测试

问题描述

我在一个目录中编译了我的测试: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

标签: scalascalatest

解决方案


假设测试是在 package 中定义的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 .

通常,当指定将发现测试的运行路径时,-R指向包开始的目录,或者指向使用以下.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

推荐阅读