He usado qunit para escribir una serie de pruebas para el código de javascript que tengo. En este momento, por alguna razón, se ejecutará la primera prueba de mi lista, y luego se ejecutará la última prueba de la lista, seguida de la penúltima, la penúltima, la penúltima, etc. ... Es crucial para mis pruebas que las cosas se ejecutan en el orden en el que las tengo. Intenté desactivar esa opción donde qunit ejecuta primero las pruebas que fallaron la última vez, pero todavía está haciendo esto. ¿Hay alguna forma de arreglar esto?Obtener QUnit para ejecutar pruebas en orden
Respuesta
Primero, descubra por qué sus pruebas DEBEN ejecutarse en un orden específico. El objetivo de las pruebas unitarias es que las pruebas son atómicas y debería ser posible ejecutarlas en cualquier orden: si su suite de pruebas no es capaz de hacerlo, debe averiguar por qué, ya que puede representar un problema mayor.
Si no puede resolverlo, es posible que deba dividir su conjunto de pruebas en grupos más pequeños de pruebas hasta que encuentre el que causa el problema.
editar: Se encontró esta referencia en http://www.educatedguesswork.org/2011/06/curse_you_qunit_1.html. Aparentemente, agregar esto a su conjunto de pruebas ayudará a QUnit.config.reorder = false;
Quizás podría considerar colocar el código que realiza cada cómputo importante en una función que tiene una prueba al principio que verifica si el cálculo ya estaba hecho. Si el cálculo no se realiza, realice el cálculo y guarde el resultado en algún lugar. Si el cálculo ya se ha realizado, solo devuelva los resultados. De esta forma, puede tener un solo cálculo para todas las pruebas, pero aún así ser autónomo en el orden en que se realizan las pruebas.
Me puedo relacionar con los problemas de los cálculos que consumen mucho tiempo en las pruebas unitarias, pero es imperativo que el grupo de prueba pueda tomar cualquier prueba unitaria y ejecutarla como una prueba autónoma independiente. Esto es especialmente cierto cuando surge un problema crítico y debe abordarse específicamente.
- 1. Esperando en QUnit pruebas
- 2. QUnit con Ajax, QUnit aprueba las pruebas que fallan
- 3. Pruebas unitarias Solicitudes AJAX con QUnit
- 4. Qunit pruebas con parámetros y burlarse
- 5. ¿Cómo puedo ejecutar pruebas de Mocha asíncronas (NodeJS) en orden?
- 6. Pasos para ejecutar pruebas NUnit en OSX
- 7. Ejecute pruebas de PHPUnit en cierto orden
- 8. Orden de ejecución de pruebas en TestNG
- 9. IDLE para ejecutar pruebas unitarias Python PyUnit
- 10. Meteorito con QUnit
- 11. Maven/Surefire no encuentra pruebas para ejecutar
- 12. ¿Cómo configuro NCrunch para ejecutar pruebas nspec?
- 13. Ejecutar pruebas JUnit en paralelo
- 14. Ejecutar pruebas en 64-bit
- 15. Maven no encuentra pruebas JUnit para ejecutar
- 16. DUnit: ¿Cómo ejecutar pruebas?
- 17. QUnit + coffeescript scope
- 18. ¿Cómo se usa node-qunit?
- 19. ¿Cómo forzo efectivamente a Minitest a ejecutar mis pruebas en orden?
- 20. ¿Cómo puedo obtener Rspec para ejecutar todas las pruebas anidadas en una carpeta?
- 21. ¿Cómo puedo obtener pruebas unitarias para ejecutar en una plataforma x64?
- 22. ¿Cómo puedo obtener phpunit para ejecutar pruebas de todos los archivos en una carpeta?
- 23. ¿Cómo ejecutar pruebas en paralelo en Django?
- 24. herramienta de cobertura en QUnit
- 25. Cargando script de soporte para Resharpers QUnit testrunner
- 26. ¿Cómo ejecutar pruebas de integración?
- 27. Obtener python MySQLdb para ejecutar en Ubuntu
- 28. ejecutar pruebas en mstest sin compilación/construcción
- 29. django: ejecutar pruebas con cobertura
- 30. Ejecutar todas las pruebas en Junit 4
No, sé por qué. Para aumentar la eficiencia. (No quiero entrar en detalles, pero a partir de ahora cada prueba tarda mucho tiempo en ejecutarse y necesito hacer las cosas lo más racionalizadas posible). Algunas pruebas se basan en los resultados de una prueba previa. Puedo hacer que todo sea atómico, pero luego todo lleva más tiempo de lo que ya es. Una vez que me pongan en una posición en la que el tiempo no importa, puedo volver a un modelo atómico, pero por ahora quiero que mis pruebas se ejecuten en el orden en que las escribí para mayor eficiencia. – user1028497
@ user1028497 "Algunas pruebas dependen de los resultados de una prueba previa", entonces no tiene atomicidad; debe preparar lo que se necesita para la prueba en la prueba en sí. – unludo
Estaba haciendo eso sí. Pero en este momento necesito eficiencia, y esta era la mejor manera de hacer las cosas. No quiero explicar todo, pero basta con decir que en este momento necesito que las pruebas se ejecuten en el orden en que las tengo. – user1028497