Como compilar testes com SBT sem executá-los

97

Existe uma maneira de construir testes com o SBT sem executá-los?

Meu próprio caso de uso é executar uma análise estática no código de teste usando um plugin scalac. Outro caso de uso possível é executar parte ou todo o código de teste usando um executor separado do integrado ao SBT.

Idealmente, haveria uma solução para este problema que se aplicasse a qualquer projeto SBT. Por exemplo, o Maven tem um comando test-compile que pode ser usado apenas para compilar os testes sem executá-los. Seria ótimo se o SBT tivesse a mesma coisa.

Menos ideais, mas ainda muito úteis, seriam as soluções que envolvem a modificação dos arquivos de construção do projeto.

user1809090
fonte

Respostas:

160

Basta usar o test:compilecomando.

Guillaume Massé
fonte
1
isso compila os testes e o código? ou apenas os testes?
Jwan622
21

test:compile funciona para compilar seus testes de unidade.

Para compilar testes de integração, você pode usar it:compile.

Outra dica para compilar continuamente a cada alteração de arquivo: ~test:compile

Brendan Maguire
fonte
6

Temos um build.sbtarquivo que é usado para vários projetos. Fazer sbt test:compileos testes compilados para cada projeto e levou mais de 30 minutos.

Descobri que posso compilar apenas os testes de um projeto específico nomeado xyzfazendo:

sbt xyz/test:compile
pacoverflow
fonte