2012-12-14 6 views
26

Otrzymuję komunikat o błędzie "Znaleziono raporty z testów, ale żaden z nich nie jest nowy. Czy uruchomiono testy?" podczas próby wysłania wyników testów jednostkowych pocztą e-mail. Powodem jest to, że mam dedykowane zadanie Jenkinsa, które importuje artefakty z zadania testowego do samego siebie i wysyła wyniki testu pocztą e-mail. Powodem, dla którego to robię, jest to, że nie chcę, aby Jenkins wysyłał pocztą e-mail wszystkich programistów w nocy :), więc wysyłam e-mailem wiadomość, ponieważ sam Jenkins nie obsługuje opóźnionych powiadomień e-mail (niestety).Jak naprawić "Znaleziono raporty z testów, ale żaden z nich nie jest nowy. Czy uruchomiono testy?" w Jenkins

Jednak do czasu wykonania zadania "Wyślij wyniki testu pocztą e-mail" testy są już zajęte i pojawia się błąd określony w tytule pytania. Wszelkie pomysły, jak obejść ten problem?

Odpowiedz

39

Możesz spróbować zaktualizować sygnatury czasowe raportów z testów jako krok kompilacji ("Wykonaj skrypt powłoki"). Na przykład.

cd path/to/test/reports 
touch *.xml 
+0

doskonałe dzięki Działało – kobe

+0

pamiętać, że może to prowadzić Jenkins wierzyć, że testy usunięte zostały wykonane, jeśli test zostanie usunięty, ale raporty z testów będą przechowywane. –

+0

@ DavidPärsson - rozwiązanie? Czyszczenie danych wyjściowych testów? – KarlP

5

Aktualizacja daty ostatniej modyfikacji można również osiągnąć w Gradle sama jest pożądane:

task jenkinsTest{ 
    inputs.files test.outputs.files 
    doLast{ 
     def timestamp = System.currentTimeMillis() 
     test.testResultsDir.eachFile { it.lastModified = timestamp } 
    } 
} 

build.dependsOn(jenkinsTest) 

Jak wspomniano tutaj: http://www.practicalgradle.org/blog/2011/06/incremental-tests-with-jenkins/

+0

Ponadto, jak gradle ostrzega, 'testResultsDir' jest przestarzałe i zostanie usunięte w Gradle 2.0. Zamiast tego należy użyć 'getReports(). GetJunitXml(). GetDestination()'. – ugo

1

Execute cd ścieżka/do/test/raporty dotyk * .xml

nie działa dla mnie, ale uruchamia następujące polecenie działa:

Test mvn clean przez konsolę lub przez jenkins.

Generuje to nowe raporty z testów.

0

Upewnij się, że podałeś poprawną ścieżkę w odniesieniu do "Testuj raporty XML" w konfiguracji Jaskiń, takich jak "target/surefire-reports/*. Xml" Nie trzeba dotykać * .xml, jak wygrał jenkins " narzekają, mimo że plik xml wyników testu się nie zmienia.

0

jeśli używasz systemu Windows niewolnika, można wyniki „dotknąć” używania groovy fazę realizacji z PowerShell:

powershell 'ls "junitreports\\*.*" | foreach-object { $_.LastWriteTime = Get-Date }' 
Powiązane problemy