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

Using a common test utility file for projects built in SBT

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

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

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

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

  1. 将文件复制到两个测试文件夹(错误)
  2. 将文件移动到 src 文件夹(引入 srcscalatest 的依赖,我希望避免这种情况)
  3. 想办法让integration文件夹使用test文件夹中的文件(不知道怎么做)

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

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

   dependencyClasspath in IntegrationTest := (dependencyClasspath in IntegrationTest).value
  ++ (exportedProducts in Test).value