6. září 2007

XSLT Unit Testing

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
@pause
Tato 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

20. srpna 2007

jVikiBlog...

Vítám tě čtenáři na začátku mého blogu;). Možná sem budu psát, možná ne, uvidíme. Jsem programátor a muzikant, rád filosofuju o nejrůznějších blbinách a miluji dobrou náladu.