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?
Respuesta
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.
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.) –
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
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í:
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).
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 –
Jazmín correrá muy feliz dentro de node.js.
Tome un vistazo a los siguientes artículos:
Además, tenemos un servidor JsTestDriver se ejecuta con un par de navegadores web (como los corredores de consola remota) como recurso para Jenkins, por lo que puede tener CI con pruebas en navegadores web.
- 1. Pruebas sin cabeza para JavaScript?
- 2. Qué BDD para aplicaciones backbone JS que admite pruebas automatizadas
- 3. Marco de pruebas unitarias para MATLAB
- 4. marco de pruebas unitarias para C
- 5. Marco preferido de pruebas de unidades Python
- 6. ¿JUnit admite archivos de propiedades para las pruebas?
- 7. Ejecutando pruebas VSTS sin mstest.exe
- 8. ¿Qué pruebas con las pruebas unitarias?
- 9. Marco de pruebas unitarias para bases de datos
- 10. Pruebas miniaturizadas javascript
- 11. Marco de pruebas del sistema en Java
- 12. Qué pruebas unitarias en PHP para comenzar
- 13. ¿Herramienta/marco para pruebas automatizadas de aplicaciones web en el navegador Google Chrome?
- 14. ¿Existe un marco de pruebas unitarias para GNU?
- 15. Mejor marco actual para pruebas unitarias EJB3/JPA
- 16. Pruebas de Android sin emulador
- 17. ¿Hay un navegador sin cabeza para .NET (para pruebas de interfaz de usuario web automatizadas)?
- 18. Pruebas de unidad CoffeeScript?
- 19. ¿Hay algún buen marco de pruebas unitarias para Ada?
- 20. ¿Marco o herramienta para "pruebas de unidades distribuidas"?
- 21. ¿El mejor marco de pruebas unitarias para Clojure?
- 22. Pruebas unitarias y pruebas funcionales en CodeIgniter
- 23. Pruebas de rendimiento Versus Unidad de Pruebas
- 24. Pruebas unitarias automatizadas con JavaScript
- 25. Mejor práctica para organizar pruebas de selenio y pruebas unitarias
- 26. ¿Pruebas unitarias o pruebas funcionales?
- 27. Pruebas unitarias en QTestLib - ejecución de pruebas individuales/pruebas en clase/todas las pruebas
- 28. Pruebas SQLCop para tSQLt
- 29. ¿Qué pruebas hacer para este pequeño método?
- 30. MSTest ejecutando todas mis pruebas simultáneamente rompe pruebas - qué hacer
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? –
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
¿Qué tal phantomjs? – ShrekOverflow