Začal jsem používat jednotkové testy u XSLT šablon. Tj radost! Využívám balík XTC. Doporučuji napsat si skript nebo dávku pro větší automatizaci. Např. pro Windows takto:
@rem ********** setup ********** @rem Saxon main jar file @set SAXON_JAR=<cesta k saxon8.jar> @rem XSLT Unit directory @set XSLT_UNIT=<cesta k adresáři s unit-test šablonami> @rem Test directory (tests) @set TEST_SRC=<adresář s testy (soubory *.xts)> @rem XSLT directory (sources) @set XSLT_SRC=<adresář s vašimi testovanými styly> @rem Report file name (without extension) @set REPORT_FILE=report @rem ********* prepare ********* @echo Running XSLT Unit Test @java -jar "%SAXON_JAR%" %TEST_SRC%\%1.xts "%XSLT_UNIT%\test-suite-gen.xsl" > %TEST_SRC%\%1-unittest.xsl @if %errorlevel% GTR 0 goto waitexit rem on error stop @echo Unittest prepared @rem ********* testing ********* @echo Testing... @java -jar "%SAXON_JAR%" %XSLT_SRC%\%1.xsl %TEST_SRC%\%1-unittest.xsl > %REPORT_FILE%.xml @if %errorlevel% GTR 0 goto waitexit rem on error stop @echo Tested @rem ********** report ********* @echo Generating report @java -jar "%SAXON_JAR%" %REPORT_FILE%.xml "%XSLT_UNIT%\report-to-html.xsl" > %REPORT_FILE%.html @if %errorlevel% GTR 0 goto waitexit rem on error stop @echo Report file: %REPORT_FILE%.html @rem ********** clean ********** @echo Cleaning up @erase %TEST_SRC%\%1-unittest.xsl :waitexit @echo Done @pauseTato dávka spustí nejdříve vygenerování testovacího stylu, poté provede testy a nakonec vygeneruje HTML report. V případě chyby se zastaví. Použití:
- uložím si ji do souboru test.bat
- nastavím všechny cesty v úvodu
Spouštění:
test <jméno stylu bez přípony>
Konkrétní příklad:
test xml2xhtml =>
spustí test pro xml2xhtml.xsl