对 SBT 中构建的项目使用通用测试实用程序文件

War*_*ame 5 integration-testing unit-testing scala sbt

给定一个使用build.sbt文件的项目,我希望有一个TestUtils.scala集成和单元测试都依赖的通用文件。

我的 src 文件夹位于src/scala,集成测试文件夹位于it/scala。我的单元测试文件夹位于test/scala,并且包含公共TestsUtils.scala文件。

目前我正在 Intellij 中通过 ScalaTest 运行我的测试。当我以这种方式运行它时,Intellij 能够确定集成测试文件夹对单元测试文件夹的依赖关系。我正在尝试切换到使用一testit:testSBTunit:test任务。当我这样做时,集成测试文件夹无法编译,因为它找不到通用TestUtils.scala文件。如果我将TestUtils.scala文件复制到集成测试文件夹,那么它会编译,但我不想在两个位置有相同的代码。

以下是我看到的解决此问题的方法:

  1. 将文件复制到两个测试文件夹中(不好)
  2. 将文件移动到src文件夹中(引入我希望避免的依赖srcscalatest
  3. 找到一种方法让integration文件夹使用文件夹中的文件test(不知道该怎么做)

理想情况下,我想使用第三种方法,但不知道如何实际实现它。如何让一个文件夹使用另一个文件夹作为 SBT 中的依赖项?有我不知道的更好方法吗?

War*_*ame 3

根据 Mario Galic 的上述评论,我稍微修改了它以适用于我的 build.sbt 文件。我使用了以下代码:

   dependencyClasspath in IntegrationTest := (dependencyClasspath in IntegrationTest).value
  ++ (exportedProducts in Test).value
Run Code Online (Sandbox Code Playgroud)