Использование файла общей тестовой утилиты для проектов, построенных на SBT - PullRequest
2 голосов
/ 05 августа 2020

Учитывая проект, использующий файл build.sbt, я хотел бы иметь общий файл TestUtils.scala, на который полагаются как интеграция, так и модульные тесты.

У меня есть папка sr c в src/scala и моя папка интеграционного тестирования it/scala. Моя папка модульного тестирования находится по адресу test/scala и содержит общий файл TestsUtils.scala.

В настоящее время я запускаю свои тесты через ScalaTest в Intellij. Когда я запускаю его таким образом, Intellij может определить зависимость из папки интеграционного тестирования в папке модульного тестирования. Я пытаюсь перейти на использование набора задач SBT test, it:test и unit:test. Когда я это делаю, папка интеграционного тестирования не компилируется, так как не может найти общий файл TestUtils.scala. Если я скопирую файл TestUtils.scala в свою папку для тестирования интеграции, он будет компилироваться, но я не хочу иметь один и тот же код в двух местах.

Вот подходы, которые я вижу для решения этой проблемы:

  1. Скопируйте файл в обе тестовые папки (плохо)
  2. Переместите файл в папку src (вводит src зависимость от scalatest, чего я бы предпочел избежать)
  3. Найдите способ для папки integration использовать файл из папки test (не знаю, как это сделать)

В идеале я бы хотел использовать третий подход, но не знаю, как его реализовать. Как заставить одну папку использовать другую папку как зависимость в SBT? Есть ли лучший подход, о котором я не знаю?

1 Ответ

0 голосов
/ 06 августа 2020

На основе комментария Марио Гали c Я немного изменил его, чтобы он работал с моим файлом build.sbt. Я использовал следующий код:

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