2013-02-18 12 views
13

Dokładny komunikat otrzymany od Jenkins:Jenkins JUnit Wynik testu wtyczki raportu stwierdza, że ​​plik JUnit xml nie został znaleziony?

No test report files were found. Configuration error? 
Build step 'Publish JUnit test result report' changed build result to FAILURE 

Podczas konfigurowania JUnit Test Wynik Zgłoś wtyczki, wchodząc na ścieżkę plików XML „Test Report” jako „/reports/TEST-*.xml”, następujący błąd jest wyświetlana pod ścieżką:

'/reports/TEST-*.xml' doesn't match anything: '' exists but not '/reports/TEST-*.xml' 

próbowałem, używając pełnej ścieżki, jak dobrze, ale to daje ten sam wynik. W obu przypadkach ścieżki powinny pobrać plik "TESTS-TestSuites.xml", który był obecny w katalogu/reports.

Nie jestem pewien, czy jest to problem z wtyczką lub generowanym plikiem XML. Jestem również świadomy, że może to być problem ze skryptem budującym mrówki, który napisałem, aby uruchomić testy JUnit i utworzyć plik wynikowy XML, dlatego zawarłem jego zawartość poniżej, na wypadek, gdyby coś wymagało zmiany:

<?xml version="1.0" encoding="utf-8"?> 
<project name="jenkins-tests" basedir="." default="linux"> 

<property name="junit.output.dir" value="output"/> 
<property name="src.dir" value="src"/> 
<property name="lib.dir" value="libs" /> 
<property name="bin.dir" value="bin" /> 
<property name="full-compile" value="true" /> 

<path id="classpath.base"/> 

<path id="classpath.test"> 
    <pathelement location="${bin.dir}" /> 
    <pathelement location="${src.dir}" /> 
    <pathelement location="${lib.dir}" /> 
    <pathelement location="${lib.dir}/junit.jar" /> 
    <path refid="classpath.base" /> 
</path> 

<target name="clean" description="Clean up build artefacts"> 
    <delete dir="${basedir}/${junit.output.dir}" /> 
</target> 

<target name="prepare" depends="clean" description="Prepare for build"> 
    <mkdir dir="${basedir}/${junit.output.dir}" /> 
    <mkdir dir="${junit.output.dir}/reports"/> 
</target> 

<target name="compile" depends="prepare"> 
    <javac srcdir="${src.dir}" destdir="${bin.dir}" verbose="${full-compile}" includeAntRuntime="false" > 
     <classpath refid="classpath.test"/> 
    </javac> 
</target> 

<target name="test" depends="compile"> 
    <junit printsummary="true" haltonfailure="false"> 
     <formatter type="xml" usefile="true"/> 
     <classpath refid="classpath.test" /> 
     <batchtest fork="yes" todir="${junit.output.dir}"> 
      <fileset dir="${src.dir}"> 
       <include name="*.java"/> 
      </fileset> 
     </batchtest> 
    </junit> 
</target> 

<target name="test-reports" depends="test"> 
    <junitreport tofile="TESTS-TestSuites.xml" todir="${junit.output.dir}/reports"> 
     <fileset dir="${junit.output.dir}"> 
      <include name="TEST-*.xml" /> 
     </fileset> 
     <report format="frames" todir="${junit.output.dir}/reports" /> 
    </junitreport> 
</target> 
</project> 

Od pewnego czasu badam ten problem i nie znalazłem żadnego rozwiązania, więc byłbym wdzięczny za każdą pomoc. Dzięki.

+1

Czy uruchomić testy co najmniej raz? Ten błąd pojawia się podczas konfigurowania wtyczki po raz pierwszy. – Jayan

+0

Tak, testy przebiegają dobrze i mówią, że kompilacja się powiodła. Próbuje tylko wygenerować raporty za pomocą wtyczki, które powodują awarię kompilacji. – Ben

+0

@ Ben: Czy możesz przejść do plików TEST * xml za pośrednictwem Jennkins-> job-> workspace -> ...? Dowiesz się, jaki wzór jest naprawdę potrzebny. Odpowiedź Shivy Kumar powinna zadziałać. – Jayan

Odpowiedz

11

Jenkins szuka ścieżki z katalogu głównego obszaru roboczego. Upewnij się, że podana ścieżka jest prawidłowa lub użyj symboli wieloznacznych do wyświetlania w wielu lokalizacjach. Spróbuj użyć **/reports/TEST-*.xml Czy na pewno folder raportów znajduje się tuż pod obszarem roboczym? Sprawdź ręcznie, czy pliki wyników testu rzeczywiście znajdują się w lokalizacji podanej w ścieżce.

+0

Użyłem tej ścieżki i pozbyłem się początkowego błędu ścieżki, ale nadal otrzymuję błąd xml nie znaleziony podczas uruchamiania zadania. Może folder raportów jest w niewłaściwym miejscu. Obecnie Jenkins działa na oddzielnym serwerze do testów. Czy folder raportów musiałby znajdować się na serwerze Jenkinsa, a raporty w skrypcie ant wskazywały na to? – Ben

+0

Na lokalnym serwerze (nie serwerze Jennkins) mam katalog podstawowy, który zawiera katalogi src, bin i libs dla moich testów JUnit, jak również plik xml budowy mrówki. Plik build.xml tworzy katalog wyjściowy ($ {junit.output.dir}) wraz z innymi katalogami, gdy jest uruchamiany, a następnie tworzony jest tam katalog raportów. Katalogi jenkins są całkowicie oddzielne na własnym serwerze. Właśnie patrzyłem na serwer Jenkinsa i mam następującą ścieżkę do obszaru roboczego zadania:/var/lib/jenkins/jobs/jUnit Test/workspace Czy zamiast tego powinny się tu znajdować raporty, test i build.xml? – Ben

+0

\ Klienci \ strona internetowa \ wersje \ ben \ includes \ fuel \ app \ tests \ selen \ JenkinsTests \ output \ reports – Ben

1

Dla mojego Android projektu, który ma wiele smaków produktów Gradle I stosuje się następującą ścieżkę Test report XMLs:

**/build/test-results/**/TEST-*.xml 

JUnit plugin

Powiązane problemy