2012-05-02 16 views
7

Mam projekt kompilatora scala Niektóre z przypadków testowych zależą od wygenerowanego pliku JAR Dlatego zawsze ręcznie uruchamiam zadanie "pakiet" przed uruchomieniem "testu" zadanieJak uruchomić "pakiet" przed "testem"

Jak mogę dodać zadanie SBT, która będzie wykonać zadanie „test”, ale będzie zależeć od „pakietu”

Odpowiedz

7

SBT 0,12.?

Dodaj następujące ustawienia do ustawień projektu :

(test in Test) <<= (test in Test) dependsOn (Keys.`package` in Compile) 

Spowoduje to zmianę zadania testowego dla twojego projektu. Ale można też zdefiniować własne zadanie:

val myTestTask = TaskKey[Unit]("my-test-task", "runs package and then test") 

A następnie dodać do ustawień projektu:

myTestTask <<= (test in Test) dependsOn (Keys.`package` in Compile) 

SBT 0.13:

Dodaj następujące ustawienia do ustawień projektu:

(test in Test) := { 
    (Keys.`package` in Compile).value 
    (test in Test).value 
} 

To zmienia zadanie testowe dla Ciebie projekt ur. Ale można też zdefiniować własne zadanie:

val myTestTask = taskKey[Unit]("runs package and then test") 

A następnie dodać do ustawień projektu:

myTestTask := { 
    (Keys.`package` in Compile).value 
    (test in Test).value 
} 
+0

otrzymuję następujący błąd 'build.sbt: 21: o błędzie: EOF oczekiwany ale„pakiet "znalezione" '(test w teście) << = (test w teście) zależyPo pakiet' – dips

+1

Musiałem zmienić to na '(test w teście) << = (test w teście) dependentOny (klucze. \ 'pakiet \' w Kompilacji) '. Czy to zwykły sposób, czy coś szczególnego dla mojej konfiguracji? Zauważ, że pomijanie 'Keys' daje mi błąd' odniesienie do pakietu jest niejednoznaczne. jest importowany dwa razy w tym samym zakresie, importuj Keys._ i import sbt._' – dips

+2

@dips Jest to niefortunny konflikt ze słowem kluczowym 'package' firmy Scala. –

Powiązane problemy