2009-07-10 8 views
8

Para Javascript existen algunos frameworks de prueba, como JSUnit o js-test-driver. Están bien, pero ejecutan las pruebas en un navegador. Está bien, especialmente para verificar que su aplicación web se ejecuta en diferentes navegadores. Pero en el servidor de integración continua no se instala ningún sistema de ventana (y ningún navegador). Entonces, ¿hay alguna manera de ejecutar las pruebas sin el uso de un navegador? Lo mejor sería utilizar uno de los marcos existentes, para que los desarrolladores puedan ejecutar localmente las pruebas en sus navegadores y el sistema de integración continua los ejecute sin navegador.¿Qué marco de pruebas para Javascript admite Pruebas sin navegador?

+2

No es una respuesta a su pregunta, pero le sugiero probarla en un navegador real. Esto es lo que verán los usuarios finales, así que esto debe probarse. ¿En qué SO está instalado el CI? –

+1

El CI está instalado en Linux, pero sin una X. Por lo tanto, no es posible realizar pruebas en un navegador en el servidor de CI. En los navegadores será probado por los desarrolladores de todos modos, pero quiero agregar las pruebas también a CI. – Mnementh

+0

¿Qué tal phantomjs? – ShrekOverflow

Respuesta

1

Usted puede estar interesado en HtmlUnit que es utilizado por varias marco de pruebas de interfaz de usuario como WebDriver

1

jsTest se puede ejecutar la línea de comandos o como un plugin de eclipse.

Sin embargo, tenga cuidado, no obtendrá la cobertura del 100% del código con una herramienta como esta si necesita admitir varios navegadores. Cada navegador implementa JavaScript de manera diferente (es decir, IE). Por lo tanto, la única manera de probar completamente su JavaScript es ejecutar las pruebas en todos los navegadores compatibles.

+0

No estoy seguro de por qué dice que no puede obtener una cobertura del 100%. La cobertura significa que el código se ejecuta. El problema que señala (compatibilidad entre navegadores) es que el mismo código podría significar (y hacer) cosas diferentes en diferentes entornos de ejecución. La implicación de esto es que si tiene una cobertura del 100% en Firefox, es posible que no le diga todo lo que quiere saber sobre el comportamiento del código en IE. Puede obtener una cobertura del 100% sin obtener el 100% de conocimiento.(E incluso el 100% de cobertura en todos los navegadores no es lo mismo que el 100% de conocimiento, pero ese es un problema diferente.) –

+0

Esto fue hace 5 años. El desarrollo web en aquel entonces estaba lleno de bifurcaciones dependientes del navegador ya que las API eran muy dispares. Si ejecutó su prueba en Firefox, algún corredor de línea de comandos, etc. no pudo ejecutar _cualquier_ del código en la otra rama que manejó otro navegador. Ya que está dejando la mitad de sus sucursales sin probar, no puede reclamar una cobertura de código del 100%. Hoy en día, el paisaje es muy diferente. Honestamente, no puedo recordar la última vez que tuve que hacer cosas diferentes para diferentes navegadores. – geowa4

0

Creo que Canoo WebTest se puede ejecutar sin un navegador. Se trata básicamente de un marco de pruebas de interfaz, pero puede ser utilizado para probar JavaScript así:

http://webtest.canoo.com/

0

JSpec puede haber correr sin un navegador (usando Rhino). Pero también admite correr en navegadores también.

http://visionmedia.github.com/jspec/

También proporciona una buena sintaxis estilo de especificación:

describe 'ShoppingCart' 
    describe 'addProduct' 
    it 'should add a product' 
     cart.addProduct('cookie') 
     cart.addProduct('icecream') 
     cart.should.have 2, 'products' 
    end 
    end 
end 

Mediante la ejecución de todas las pruebas unitarias fuera de un navegador, también puede obtener los beneficios de garantizar la separación de la lógica del HTML/capa de presentación (útil para aplicaciones web, posiblemente exagerada para pequeñas secuencias de comandos).

+0

El proyecto jspec está muerto y, antes de que su sitio desapareciera del todo, recomendaba a Jasmine. http://stackoverflow.com/questions/3912312/jspec-no-longer-supported –

0

Jazmín correrá muy feliz dentro de node.js.

Cuestiones relacionadas