2011-11-23 20 views
5

Moje testy JUnit uruchamiane za pośrednictwem mrówek 1,7 od wewnątrz mojego środowiska Eclipse ale failes kompilacji, gdy zadanie jest wykonywane junitreport:Ant <junitreport> niepowodzeniem z powodu XALAN'S (XSLT) funkcją bezpiecznego przetwarzania

BUILD FAILED ... /build.xml:222: Błędy podczas stosowania transformacji: javax.xml.transform.TransformerException: java.lang.RuntimeException: Używanie funkcji rozszerzenia 'xalan: //org.apache.tools.ant.util.StringUtils: zastąpić” nie jest dozwolone, gdy bezpieczna funkcja przetwarzania jest ustawiona na wartość true.

Próbowałem dowiedzieć się, jak zrobić zadanie junitreport wyłączyć funkcję bezpiecznego przetwarzania (które nie potrzebują i tylko w drodze w tym momencie), ale nie mam pojęcia jak, ponieważ zadanie nie robi” t mieć atrybut, aby go wyłączyć. Czy powinienem zrobić coś innego, aby to zadziałało?

Odpowiedz

3

To może być związane z bardzo podobny known bug in Ant 1.8.2.

bugfix for Ant 1.8.3 zostało popełnione, ale Apache Ant 1.8.3 musi jeszcze zostać wydany 25 stycznia 2012 roku o opis whatsnew naprawienie tego jest:

<junitreport> did not work in embedded environments on JDK 7. 
Bugzilla Report 51668. 

Po Ant 1.8.3 jest zwolniony, a jest włączony do wtyczki Eclipse Ant, ten problem powinien zostać rozwiązany.

W międzyczasie możesz edytować skrypt kompilacji więc tylko biegnie na bramkę JUnitReport jeśli działa Ant z wiersza poleceń, a nie od wewnątrz Eclipse. Aby dokonać takiego ustalenia, patrzeć na prezent plików w regularnych % ANT_HOME%/lib folderu, który nie jest obecny w folderze wtyczek Eclipse Ant (lub utworzyć plik istnieje), a następnie ustaw właściwość, jeśli zostanie wykryty plik. NA PRZYKŁAD.

tuż przed końcem swojego celu JUnit:

<available file="${ant.home}/lib/ant.pom" property="full.ant"/> 

Na początku swojej tarczy JUnitReport:

<target name="junitreport" description="Create a consolidated test results report" if="full.ant"> 

Powyższe Ant fragmenty pracy, ponieważ ant.home jest ustawiony na Folder Eclipse Ant Plugin tylko wtedy, gdy Ant jest uruchamiany z poziomu Eclipse. Kiedy Ant jest uruchamiane z linii poleceń, ant.home dopasuje swoją zmienną środowiskową ANT_HOME. Tam też ma być eclipse.running nieruchomość Ant, ale nie może wykryć tę właściwość.

Inną tymczasową opcją jest pobranie najnowszych plików JAR z nocnych kompilacji Ant z this link na stronie projektu Apach Ant, a następnie umieszczenie tych plików JAR w odpowiadającym im podfolderze wtyczki Eclipse Ant. Brak gwarancji, że to zadziała.

0

Próbowałem dowiedzieć się, jak zrobić zadanie junitreport wyłączyć funkcję bezpiecznego przetwarzania (które nie potrzebują i tylko w drodze w tym momencie), ale nie mam pojęcia jak, ponieważ zadanie nie robi” t mieć atrybut, aby go wyłączyć.

Zawsze możesz po prostu skomentować zadanie.

+0

Dzięki za odpowiedź. Być może moje zdanie nie było jasne. Chciałbym wyłączyć "bezpieczną funkcję przetwarzania", ale ja potrzebuję raportu junitreport. – Almer