2011-12-01 9 views
19

Mam build Gradle w Jenkins z różnych testów JUnit, które są wykonywane jako część kompilacji. Teraz, gdy niektóre testy zakończą się niepowodzeniem, cała kompilacja jest oznaczona jako nieudana - ponieważ Gradle twierdzi, że kompilacja nie powiodła się.Mark Gradle kompilacji niestabilny w Jenkins, gdy JUnit testów nie powiedzie się

Jak mogę przekonać Gradle, aby odniósł sukces, a następnie Jenkins, aby oznaczyć budowę jako niestabilną? Z mrówką to nie był żaden problem.

Odpowiedz

21

Użyj ignoreFailures property in the test task.

apply plugin: 'java' 
test { 
    ignoreFailures = true 
} 
+0

Czy można skonfigurować to dla jenkins tylko z linii poleceń? Ponieważ z tą opcją NIEUDANA kompilacja jest rejestrowana jako SUCCESS – MariuszS

+2

powodzenie dobrej kompilacji - ale wyniki Jennkinsa budowane są jako "sukces", a nie jako "niestabilne": - /. Ktoś ma dobre rozwiązanie? Jakiś plugin dla Jenkinsa? lub coś w rodzaju –

+1

dobrze - rozwiązaniem jest użycie tego. I coś z tej odpowiedzi http://stackoverflow.com/questions/8148122/how-to-mark-a-build-unstable-in-jenkins-when-running-shell-scripts Użyłem wtyczki "Text-finder" –

1

można umieścić to w głównej build.gradle być stosowane do wszystkich projektów i wszystkich zadań testowych.

allprojects{ 
    tasks.withType(Test) { 
     ignoreFailures=true; 
    } 
} 
3

Możesz użyć zewnętrznych właściwości, aby rozwiązać ten problem.

if (!ext.has('ignoreTestFailures')) { 
    ext.ignoreTestFailures = false 
} 

test { 
    ignoreFailures = project.ext.ignoreTestFailures 
} 

W tej konfiguracji domyślnie awarie nie powiedzie się kompilacja. Ale jeśli wywołasz Gradle w taki sposób: gradle -PignoreTestFailures=true test, wówczas niepowodzenia testów nie zawiedzie kompilacji. Możesz więc skonfigurować Jenkinsa tak, aby ignorował niepowodzenia testów, ale żeby nie powiodło się, gdy programista uruchamia testy ręcznie.