Cuando escribe algunos scripts que son autosuficientes, ¿es una mala idea usar el if __name__ == '__main__'
como lugar para escribir pruebas?Usar si __name__ == '__main__': para pruebas
Respuesta
La prueba de lógica y las pruebas nunca deben formar parte de "producción" (la producción puede significar el uso por usted, liberado al cliente, etc.) código. Por lo tanto, es una mala idea tenerlos en cualquier lugar dentro de su secuencia de comandos.
Lo ideal es tenerlos en archivos separados.
Supongo que no, de hecho, vi una gran cantidad de scripts de Python (en su mayoría complementos de otra aplicación) escritos de esa manera.
La mejor práctica es poner las pruebas en unidades separadas que utilizan el módulo unittest. Esta separación le permite mantener limpio el código principal (sin necesidad de muchas pruebas de funciones auxiliares) y lo alienta a escribir buenas pruebas exhaustivas, ya que no se ve inhibido por el desorden del código principal.
Realmente depende de su código y los propósitos de su secuencia de comandos. Para proyectos grandes y complejos, seguramente tendrá que poner todas sus pruebas en un lugar separado.
Pero mientras trabajas en algo pequeño, puede ser una buena solución tener pruebas junto con el código: es la idea principal de doctest
(es un gran módulo de Python que te permite escribir pruebas en las cadenas de documentos). En este caso, su if __name__ == '__main__'
será parecida:
if __name__ == "__main__":
import doctest
doctest.testmod()
me resulta agradable y limpio.
- 1. Powershell equivilent de Python si __name__ == '__main__':
- 2. node.js equivalente de python si __name__ == '__main__'
- 3. ¿Por qué hace esto? si - __name__ == '__main__'
- 4. PHP equivalente de Python's __name__ == "__main__"?
- 5. El alcance de if __name__ == __main__
- 6. ¿Cómo configuro __name__ a '__main__' cuando uso IronPython alojado?
- 7. ¿Hay un equivalente R de la pitonica "si __name__ ==" __main__ ": main()"?
- 8. Rubí equivalente a Python __main__
- 9. `if __name__ == '__main __'` equivalente en Ruby
- 10. __main__ y de alcance en Python
- 11. ¿Cómo importar un módulo como __main__?
- 12. ¿Cuáles son los diferentes valores posibles para __name__ en un script de Python, y qué significan?
- 13. ¿Por qué debería molestarme con las pruebas unitarias si solo puedo usar las pruebas de integración?
- 14. Cuándo usar las pruebas unitarias?
- 15. ¿Por qué la función main() no está definida dentro de if '__main__'?
- 16. Pruebas de frases para ver si coinciden entre sí
- 17. IDLE para ejecutar pruebas unitarias Python PyUnit
- 18. ¿Cómo obtener el nombre de archivo del módulo __main__ en Python?
- 19. ¿Podemos usar JUNIT para Pruebas de integración automatizada?
- 20. ¿Cómo usar HUnit y Cabal para realizar pruebas automatizadas?
- 21. ¿Por qué cambia el valor de __name__ después de la asignación a sys.modules [__ name__]?
- 22. Cómo configurar y desmontar temporalmente django db para pruebas unitarias?
- 23. ¿Las herramientas de configuración de python admiten el estilo de ejecución `__name__ ==" __main __ "`?
- 24. ¿Por qué usar def main()?
- 25. self.attr restablece entre las pruebas en unittest.TestCase
- 26. Python: determine el módulo actual actual (no __main__)
- 27. Realización de pruebas unitarias para el proyecto Euler
- 28. ¿Debo usar AutoMapper en mis pruebas unitarias?
- 29. Python: pruebas para Ninguno, las pruebas de valor booleano
- 30. Uso de objetos propios del módulo en __main__.py
¿Por qué ???????????? –
Por favor, justifique. –
Soy un nuevo programador y encuentro esta pregunta poco informativa – RodericDay