Estoy estudiando el uso de pruebas de unidades paralelas para nuestros proyectos y me preguntaba sobre las mejores prácticas para escribir realmente tales pruebas de unidades paralelas.Mejores prácticas para escribir pruebas en unidades paralelas
Respuesta
Si por pruebas en unidades paralelas se entiende las pruebas que se pueden ejecutar al mismo tiempo, el consejo más importante que puedo darle es evitar los llamados dispositivos compartidos.
El libro xUnit Test Patterns describen la Fixture plazo, que básicamente puede ser descrito como todo el contexto en el que cada caso de prueba se ejecuta, incluyendo datos persistentes y transitorias.
Un dispositivo compartido indica que los casos de prueba comparten contexto durante la ejecución. Si ese contexto es mutable, las condiciones de carrera pueden ocurrir.
Mantener un dispositivo compartido inmutable (un accesorio compartido inmóvil compartido) le permitirá ejecutar pruebas en paralelo, pero incluso mejor, los denominados Accesorios nuevos (donde cada caso de prueba tiene su propio dispositivo) son seguros para subprocesos por definición, ya que solo el caso de prueba tiene acceso al dispositivo.
Los ejemplos de dispositivos compartidos incluyen cualquier tipo de prueba que utiliza una base de datos compartida, pero también incluyen pruebas en las que tiene estado estático en memoria en el sistema bajo prueba (SUT) o las pruebas en sí, por lo que debe evitar ese.
También debe tener en cuenta que si su SUT accede a datos compartidos (estáticos), ese acceso en sí debe ser seguro para subprocesos.
Algunos enlaces interessting para usted:
Running Unit Tests in Parallel
Hay algunas respuestas interessting en esta Stackoverflow preguntas. Espero que esto ayude
- 1. Mejores prácticas para escribir widgets de JavaScript
- 2. Mejores prácticas para escribir código abierto Java
- 3. Mejores prácticas para C#
- 4. Mejores prácticas para pruebas unitarias, objetos simulados y ioc
- 5. ¿Mejores prácticas para las pruebas de integración con Maven?
- 6. Selenium, Nunit ¿Mejores prácticas?
- 7. Registro para ASP.NET - Mejores prácticas
- 8. Mejores prácticas para escribir un analizador de lenguaje de programación
- 9. ¿Cuán paralelas son las pruebas paralelas en Ruby 1.9.3?
- 10. Poblar SQLite en la memoria para pruebas de unidades
- 11. Mejores prácticas para almacenar configuraciones
- 12. Mejores prácticas para Magento Deployment
- 13. ¿Mejores prácticas para API seguras?
- 14. Mejores prácticas para la depuración
- 15. ¿Mejores prácticas para autoguardar borradores?
- 16. DTO: mejores prácticas
- 17. Mejores prácticas de NAnt
- 18. ¿Mejores prácticas de Flex?
- 19. Mejores prácticas y consideraciones al escribir correos electrónicos HTML
- 20. Mejores prácticas D3 vs TDD
- 21. Mejores prácticas para usar parciales en Rails
- 22. Mejores prácticas para capturar Throwable en Java
- 23. Mejores prácticas para PK en SQL Server
- 24. Mejores prácticas para diseñar GUI en GWT
- 25. Mejores prácticas para consultas SQL en línea
- 26. Mejores prácticas para pubnub en android
- 27. ¿Mejores prácticas para usar memcached en Rails?
- 28. Mejores prácticas para usar @ en C#
- 29. Mejores prácticas para el suministro de datos - PHPUnit
- 30. Mejores prácticas para las dependencias del sistema de archivos en las pruebas de unidad/integración
¿Está hablando de probar un componente de subprocesos múltiples utilizando llamadas en paralelo? – falstro
Estoy buscando ejecutar múltiples pruebas unitarias (simultáneamente) usando MBUnit, que tiene un atributo/decoración paralelizable para pruebas unitarias - esto ejecutará tantas pruebas en paralelo como núcleos en la máquina. (¡al parecer!) –
¡Ah, excelente! :) – falstro