2010-06-25 22 views
12

Ho alcuni fogli di stile XSLT sempre più complessi e sarebbe utile se potessi eseguire alcuni test su di essi come parte del mio processo di compilazione di elementi di configurazione e persino utilizzare TDD per svilupparli in primo luogo. Attualmente sto usando Visual Studio per eseguire frammenti di XML attraverso i fogli di stile e sto verificando manualmente i risultati.Come si eseguono test automatici dei fogli di stile XSLT?

Cosa consiglieresti a tutti? Idealmente sarebbe facile integrare in CruiseControl.NET e/o MsBuild.

+0

Buona domanda (+1). Vedi la mia risposta per alcuni link. –

risposta

2

Penso che vorrei scrivere test di unità per loro nel linguaggio di programmazione di scelta (ad esempio C#). Avere una collezione di input xmls e corrispondenti uscite attese ed eseguire semplicemente xsl su questi e assicurarsi che corrispondano alle uscite. Non sono sicuro che esista un modo più intelligente di eseguire i test.

2

Se hai familiarità con Apache Cocoon, puoi usare CoUnit che usa xslt-unit sotto il cofano.

casi di test simile a questa:

<testcase id="03-reverse" ignore-whitespace="true"> 
    <input> 
    <text-to-reverse> 
     The text in this element 
     <embedded-element/> 
     will be reversed. 
    </text-to-reverse> 
    </input> 
    <expect> 
    <text-to-reverse> 
     tnemele siht ni txet ehT 
     <embedded-element/> 
     .desrever eb lliw 
    </text-to-reverse> 
    </expect> 
    <xslt src="reverse.xsl"/> 
</testcase> 
1

Io lavoro su un progetto che utilizza XSL-T. Abbiamo alcuni test basati sui dati in esecuzione con Visual Studio. Credo inoltre che N-Unit abbia alcune funzionalità di test basate sui dati.

5

Quello che ho fatto è usato il mio sistema di test unitario standard con una buona libreria per testare l'output. Al mio attuale progetto, l'output è XHTML e sto usando JUnit e xml-unit. In un progetto precedente, l'output era XSL-FO e io ho usato python-unit e xmllib. Questo mi permette di costruire l'XSLT gradualmente (usando TDD) avendo un singolo test di controllo solo una parte dell'output. Se l'output è di testo, tuttavia, potrei confrontare l'intero risultato. Ho usato il mio attuale software di test unitario per due motivi. Per prima cosa, mi è stato familiare, quindi è stato più rapido iniziare. In secondo luogo, è stato molto facile per i test automatizzare con la build se già si stava utilizzando il tipo di test previsto dalla build.

Problemi correlati