Articles of unit testing

pytest: pruebas reutilizables para diferentes implementaciones de la misma interfaz

Imagina que he implementado una utilidad (tal vez una clase) llamada Bar en un módulo foo , y he escrito las siguientes pruebas para ello. test_foo.py: from foo import Bar as Implementation from pytest import mark @mark.parametrize(, ) def test_one(): @mark.parametrize(, ) def test_two(): Ahora imagine que, en el futuro, espero que se escriban diferentes […]

Omitir prueba de unidad si falla alguna condición en SetUpClass

Estaba jugando con el framework pyUnit para probar la pyUnit de prueba de mi aplicación. ¿Hay alguna forma de omitir todas las pruebas en clase si falla alguna condición en setUpClass? Actualmente, estoy configurando el entorno (creando recursos, configurando las configuraciones globales) en setUpClass. Pero, si alguno de estos recursos de creación falla … Estoy […]

Tratando de implementar Python TestSuite

Tengo dos casos de prueba (dos archivos diferentes) que quiero ejecutar juntos en un conjunto de pruebas. Puedo hacer que las pruebas se ejecuten simplemente ejecutando python “normalmente”, pero cuando selecciono ejecutar una prueba de python-unit, dice que se ejecutan 0 pruebas. En este momento, solo estoy tratando de obtener al menos una prueba para […]

¿Cómo ejecutar unittest discover from “python setup.py test”?

Estoy tratando de averiguar cómo hacer que python setup.py test a ejecutar el equivalente de python -m unittest discover . No quiero usar un script run_tests.py y no quiero usar ninguna herramienta de prueba externa (como nose o py.test ). Está bien si la solución solo funciona en Python 2.7. En setup.py , creo que […]

¿Cómo puedo deshabilitar el registro mientras ejecuto pruebas unitarias en Python Django?

Estoy usando una prueba de unidad simple basada en un corredor de pruebas para probar mi aplicación Django. Mi aplicación está configurada para usar un registrador básico en settings.py utilizando: logging.basicConfig(level=logging.DEBUG) Y en mi código de aplicación usando: logger = logging.getLogger(__name__) logger.setLevel(getattr(settings, ‘LOG_LEVEL’, logging.DEBUG)) Sin embargo, cuando se ejecutan pruebas de unidad, me gustaría deshabilitar […]

Unidad de prueba de Python: ejecutar automáticamente el depurador cuando falla una prueba

¿Hay una manera de iniciar automáticamente el depurador en el punto en el que falla un test de unidad? Ahora mismo estoy usando pdb.set_trace () manualmente, pero esto es muy tedioso, ya que necesito agregarlo cada vez y sacarlo al final. Por ejemplo: import unittest class tests(unittest.TestCase): def setUp(self): pass def test_trigger_pdb(self): #this is the […]

Asegurar que py.test incluya el directorio de la aplicación en sys.path

Tengo una estructura de directorio de proyectos de la siguiente manera (que creo que es bastante estándar): my_project setup.py mypkg __init__.py foo.py tests functional test_f1.py unit test_u1.py Estoy usando py.test para mi marco de prueba, y espero poder ejecutar py.test tests cuando my_project en el directorio my_project para ejecutar mis pruebas. Esto realmente funciona, hasta […]

assertRaises en python unit-test no detecta la excepción

¿Alguien puede decirme por qué la siguiente prueba de unidad está fallando en el ValueError en test_bad, en lugar de atraparla con assertRaises y tener éxito? Creo que estoy usando el procedimiento y la syntax correctos, pero el ValueError no está siendo atrapado. Estoy usando Python 2.7.5 en una caja de Linux. Aquí está el […]

Python construido de forma simulada ‘abierto’ en una clase usando dos archivos diferentes

Estoy teniendo problemas para descubrir cómo simular dos archivos abiertos en una clase cuando ambos usan administradores de contexto. Sé cómo hacerlo para un archivo administrado por contexto usando el módulo simulado como este: @patch(‘__builtin__.open’) def test_interface_mapping(self, mock_config): m = MagicMock(spec=file) handle = m.return_value.__enter__.return_value handle.__iter__.return_value = (‘aa’, ‘bb’) Mi problema es cómo hacer esto cuando […]

Problema con sys.argv cuando el módulo unittest está en un script

Tengo una secuencia de comandos que hace varias cosas y acceso a los parámetros mediante sys.argv, pero cuando la secuencia de comandos llega a la parte de la unidad de prueba del código, dice que no hay un módulo para esto. El guión que tengo es: class MyScript(): def __init__(self): self.value = sys.argv[1] def hello(self): […]