SBT / Scala и интеграционное тестирование

исследуя тему автоматизации моих интеграционных тестов, я обнаружил хороший плагин в мире maven под названием FailSafe. это дает мне фазы, такие как pre-integration-test, post-integration-test и integration-test.

связывая эти фазы, я могу иметь другие плагины, которые могут запускать/останавливать и запускать изображения docker.

плагин также имеет хороший способ, которым я могу различать UnitTests и IntegrationTests (хотя оба они написаны в тесты JUnit.)

теперь вопрос в том, как я могу сделать то же самое с комбинацией Scala / SBT?

мое требование

  1. напишите интеграционные тесты в SpecFlow.
  2. интеграционные тесты рассматриваются иначе, чем модульные тесты.
  3. первый блок тестов.
  4. затем создаются контейнеры docker и запускаются
  5. затем выполняются интеграционные тесты.
  6. настройки содержит закрыть.
  7. результаты тестов записываются в файлы. (как и плагины surefire/failsafe).

возможно ли это в комбинации Scala/sbt?

2 ответов


простое решение-запустить $ sbt "~ it:test" (убедитесь, что интеграционный тест находится в пакете с именем "it") для интеграционного теста, который будет автоматически запускаться при каждом обновлении исходного кода. Более того,$sbt "~ test" для автоматизированного модульного тестирования. Если вы используете IDE, такую как IntelliJ IDEA, вы можете упростить ее запуск в пользовательской конфигурации из IDE. Надеюсь, это немного поможет. Я постоянно их запускаю, когда работаю.


Я нашел ответ на вопрос. SBT предоставляет средства для выполнения интеграционного теста, а также методы настройки и очистки для создания / уничтожения контейнеров docker

http://www.scala-sbt.org/0.13/docs/Testing.html