如何仅使用目标目录(测试类编译到的位置)运行测试



我使用 sbt 0.13.5

我想在一台机器上执行测试,如果它们成功,将项目移动到另一台机器并在不编译的情况下重新运行它们。

我试过sbt testOnly package_1 package_2但没有用。

这些是我正在尝试执行的步骤:

  1. 使用 sbt clean compile 编译项目。如果我在这台机器上执行sbt testOnly myTest1,它可以正常工作。
  2. target中的所有内容创建一个 zip 文件
  3. 在另一台计算机上下载文件
  4. 提取它并运行测试。(我只有这台机器上的target目录。

我认为如果没有构建定义的一些子集,您将无法执行测试,即您没有测试下项目的所有依赖项。target里面的只是你在项目中编写的编译源代码 - 没有测试库。如果不先帮助SBT本身,SBT就不会帮助你。

您可以模仿 sbt 对传递下载testcompile依赖项的作用,但与将构建定义复制到另一台计算机相比,工作量太大。

可能有效的方法是在另一台机器上的单个(半)项目中build.sbttarget目录。 sbt test应该可以正常工作(出于明显的原因不要使用 clean)。

最新更新