2010-06-25 12 views
12

Tengo algunas hojas de estilos XSLT cada vez más complejas y sería útil si pudiera ejecutar algunas pruebas sobre ellas como parte de mi proceso de construcción de CI, e incluso utilizar TDD para desarrollarlas en primer lugar. Actualmente estoy usando Visual Studio para ejecutar fragmentos de XML a través de las hojas de estilo y estoy verificando manualmente los resultados.¿Cómo realizo las pruebas automatizadas de hojas de estilos XSLT?

¿Qué recomendaría todo el mundo para esto? Idealmente, sería fácil de integrar en CruiseControl.NET y/o MsBuild.

+0

Buena pregunta (+1). Ver mi respuesta para algunos enlaces. –

Respuesta

2

Creo que escribiría pruebas unitarias para ellos en su lenguaje de programación preferido (por ejemplo, C#). Tenga una colección de entradas xmls y salidas esperadas correspondientes y simplemente ejecute xsl en éstas y asegúrese de que coincidan con las salidas. No estoy seguro de si hay una manera más inteligente de hacer las pruebas.

2

Si está familiarizado con Apache Cocoon, puede usar CoUnit que usa xslt-unit debajo del capó.

casos de prueba el siguiente aspecto:

<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

trabajo en un proyecto que utiliza XSL-T. Tenemos algunas pruebas basadas en datos que se ejecutan con Visual Studio. También creo que N-Unit tiene algunas características de prueba basadas en datos.

5

Lo que he hecho es utilizar mi sistema de prueba de unidad estándar con una buena biblioteca para la salida de prueba. En mi proyecto actual, el resultado es XHTML y estoy usando JUnit y xml-unit. En un proyecto anterior, el resultado fue XSL-FO y usé python-unit y xmllib. Esto me permite construir el XSLT gradualmente (usando TDD) al hacer que una única prueba verifique solo una parte de la salida. Si el resultado es texto, sin embargo, podría comparar el resultado completo. Utilicé mi software actual de pruebas unitarias por dos razones. Primero, estaba familiarizado con él, así que era más rápido comenzar. En segundo lugar, fue muy fácil para las pruebas automatizarse con la compilación si ya estaba usando el tipo de prueba que esperaba la compilación.

Cuestiones relacionadas