对 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 能够确定集成测试文件夹对单元测试文件夹的依赖性。我正在尝试切换到使用 test
、it:test
和 unit:test
组 SBT 任务。当我这样做时,集成测试文件夹无法编译,因为它找不到通用的 TestUtils.scala
文件。如果我将 TestUtils.scala
文件复制到我的集成测试文件夹,那么它会编译,但我不想在 2 个位置使用相同的代码。
以下是我看到的解决此问题的方法:
- 将文件复制到两个测试文件夹(错误)
- 将文件移动到
src
文件夹(引入 src
对 scalatest
的依赖,我希望避免这种情况)
- 想办法让
integration
文件夹使用test
文件夹中的文件(不知道怎么做)
理想情况下,我想使用第三种方法,但不知道如何实际实现它。如何让一个文件夹使用另一个文件夹作为 SBT 中的依赖项?有没有我不知道的更好的方法?
根据 Mario Galic 的评论,我稍微修改了它以适用于我的 build.sbt 文件。我使用了以下代码:
dependencyClasspath in IntegrationTest := (dependencyClasspath in IntegrationTest).value
++ (exportedProducts in Test).value
给定一个使用 build.sbt
文件的项目,我想要一个集成和单元测试都依赖的通用 TestUtils.scala
文件。
我的 src 文件夹位于 src/scala
,我的集成测试文件夹位于 it/scala
。我的单元测试文件夹位于 test/scala
,包含通用 TestsUtils.scala
文件。
目前我正在 运行通过 Intellij 中的 ScalaTest 进行测试。当我 运行 这样时,Intellij 能够确定集成测试文件夹对单元测试文件夹的依赖性。我正在尝试切换到使用 test
、it:test
和 unit:test
组 SBT 任务。当我这样做时,集成测试文件夹无法编译,因为它找不到通用的 TestUtils.scala
文件。如果我将 TestUtils.scala
文件复制到我的集成测试文件夹,那么它会编译,但我不想在 2 个位置使用相同的代码。
以下是我看到的解决此问题的方法:
- 将文件复制到两个测试文件夹(错误)
- 将文件移动到
src
文件夹(引入src
对scalatest
的依赖,我希望避免这种情况) - 想办法让
integration
文件夹使用test
文件夹中的文件(不知道怎么做)
理想情况下,我想使用第三种方法,但不知道如何实际实现它。如何让一个文件夹使用另一个文件夹作为 SBT 中的依赖项?有没有我不知道的更好的方法?
根据 Mario Galic 的评论,我稍微修改了它以适用于我的 build.sbt 文件。我使用了以下代码:
dependencyClasspath in IntegrationTest := (dependencyClasspath in IntegrationTest).value
++ (exportedProducts in Test).value