Вы можете написать такие интеграционные тесты поверх базовых тестов BDD, как Specs. Unfiltered В проекте есть много таких примеров, которые должны работать для других веб-фреймворков, таких как Scalatra.
Например, посмотрите на ServerSpec:
"A Server" should {
"respond to requests" in {
http(host as_str) must_== "test"
}
....
}
Это начинает тестовый сервер, указанный в setup
и ударив по нему с помощью Отправка в спецификации. Ключевая часть реализована в unfiltered.spec.jetty.Served
trait, что и описано: запуск и остановка службы. Также есть версия Specs2: unfiltered.specs2.jetty.Served
.
Другим трюком, который вы могли бы использовать, является sbt-revolver, который является моим любимым плагином при любом веб-разработке, особенно в сочетании с JRebel. Этот плагин может загрузить ваш веб-сервер в фоновом режиме. Я не пробовал тест вместе, но он может работать, если вам не нужно менять серверную сторону во время теста.