Как скомпилировать тесты с SBT, не запуская их

97

Есть ли способ создавать тесты с SBT без их запуска?

Мой собственный вариант использования - запустить статический анализ тестового кода с помощью плагина scalac. Другой возможный вариант использования - запускать часть или весь тестовый код, используя отдельный бегунок, отличный от того, который встроен в SBT.

В идеале было бы решение этой проблемы, применимое к любому проекту SBT. Например, в Maven есть команда test-compile, которую можно использовать только для компиляции тестов без их запуска. Было бы здорово, если бы у SBT было то же самое.

Менее идеальными, но все же очень полезными могут быть решения, предполагающие изменение файлов сборки проекта.

user1809090
источник

Ответы:

160

Просто используйте test:compileкоманду.

Гийом Массе
источник
1
компилирует ли это тесты и код? или только тесты?
Jwan622
21

test:compile работает для компиляции ваших модульных тестов.

Для компиляции интеграционных тестов можно использовать it:compile.

Еще один совет для непрерывной компиляции при каждом изменении файла: ~test:compile

Брендан Магуайр
источник
6

У нас есть build.sbtфайл, который используется для нескольких проектов. Выполнение sbt test:compileскомпилированных тестов для каждого проекта заняло более 30 минут.

Я обнаружил, что могу скомпилировать только тесты для определенного проекта с именем xyz, выполнив:

sbt xyz/test:compile
pacoverflow
источник