gpt4 book ai didi

java - 使用 ScalaTest 运行程序时如何设置类路径

转载 作者:行者123 更新时间:2023-11-30 07:10:35 25 4
gpt4 key购买 nike

假设我在 Scala 中有一个使用标准文件夹结构的典型框架应用程序。我想在 CI 服务器上运行我编译的测试 - 这些测试位于/tests 文件夹中。

当我运行 scalatest runner 时,详见此处:http://www.scalatest.org/user_guide/using_the_runner使用以下命令行命令:

scala -classpath /home/vagrant/.ivy2/ org.scalatest.tools.Runner -R target

我收到以下错误:

java.lang.NoClassDefFoundError: scala/concurrent/duration/Duration
at org.scalatest.tools.Runner$.<init>(Runner.scala:741

我知道它告诉我它找不到作为测试一部分所需的持续时间类。我也明白这可能是因为该类不在类路径上,但我不知道如何指定要传递给运行者的类路径。

我试过像下面这样指定“目标”的类路径:

scala -classpath /home/vagrant/.ivy2/cache/org.scalatest/scalatest_2.10/jars/scalatest_2.10-2.0.M8.jar:target org.scalatest.tools.Runner -R target

“target”文件夹是放置播放框架的已编译应用程序和测试的地方。我正在从项目的根目录运行该命令,因此目标是一个有效的文件路径。

看来我对类路径如何工作的理解存在根本性差距。

编辑通过手动将 scala lang jar 添加到包含持续时间类的类路径,我取得了一些成功。但是如何将所有 jar 添加到类路径中呢?有通配符语法吗?

scala -classpath "/home/vagrant/.ivy2/cache/org.scalatest/scalatest_2.10/jars/scalatest_2.10-2.0.M8.jar:/home/vagrant/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.10.3.jar" org.scalatest.tools.Runner -R target
java.lang.IncompatibleClassChangeError: Found class scala.collection.mutable.ArrayOps, but interface was expected

最佳答案

以下是如何使用 Runner 运行测试套件:

Compile tests with SBT and package them to be run later

下面是如何轻松地将多个 jar 文件添加到您的类路径:

Run scala console with play 2.2 jars

关于java - 使用 ScalaTest 运行程序时如何设置类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22075534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com