Articles of unit testing

Django setUpTestData () vs. setUp ()

Django 1.8 se entregó con un TestCase refactorizado que permite la inicialización de datos a nivel de clase utilizando transacciones y puntos de salvaguarda a través del método setUpTestData () . Esto contrasta con el setUp () de unittest que se ejecuta antes de cada método de prueba. Pregunta: ¿Cuál es el caso de uso […]

Django prueba FileField utilizando dispositivos de prueba

Estoy tratando de construir pruebas para algunos modelos que tienen un FileField. El modelo se ve así: class SolutionFile(models.Model): ”’ A file from a solution. ”’ solution = models.ForeignKey(Solution) file = models.FileField(upload_to=make_solution_file_path) Me he encontrado con dos problemas: Cuando se guardan datos en un dispositivo utilizando ./manage.py dumpdata , el contenido del archivo no se […]

Python SQLAlchemy – burlándose del método “desc” de un atributo de modelo

En mi aplicación, hay una clase para cada modelo que contiene consultas comúnmente utilizadas (supongo que es algo así como un “Repositorio” en lenguaje DDD). Cada una de estas clases recibe el objeto de sesión SQLAlchemy para crear consultas con la construcción. Estoy teniendo algunas dificultades para encontrar la mejor manera de afirmar que se […]

Uso de unittest para probar argparse – errores de salida

A partir de la respuesta de Greg Haskin en esta pregunta , traté de hacer una prueba de unidad para verificar que argparse está dando el error apropiado cuando le paso algunos argumentos que no están presentes en las choices . Sin embargo, unittest genera un falso positivo usando la statement try/except continuación. Además, cuando […]

Pruebas unitarias de Django con objetos basados ​​en fecha / hora

Supongamos que tengo el siguiente modelo de Event : from django.db import models import datetime class Event(models.Model): date_start = models.DateField() date_end = models.DateField() def is_over(self): return datetime.date.today() > self.date_end Quiero probar Event.is_over() creando un Evento que finalice en el futuro (hoy +1 o algo), y apagué la fecha y la hora para que el sistema […]

Django prueba corredor no encuentra pruebas

Soy nuevo tanto en Python como en Django y estoy aprendiendo creando un sitio de administración de dietas, pero me han derrotado por completo al hacer que mis pruebas de unidad se ejecuten. Todos los documentos y blogs que he encontrado dicen que, siempre que sea detectable desde tests.py, tests.py está en la misma carpeta […]

¿Cómo hago para que la cobertura incluya archivos no probados?

Acabo de comenzar a escribir algunas pruebas de unidad para un proyecto de python que tengo usando unittest y coverage . Actualmente solo estoy probando una pequeña proporción, pero estoy tratando de calcular la cobertura del código Realizo mis pruebas y obtengo la cobertura usando lo siguiente python -m unittest discover -s tests/ coverage run […]

unittest Vs pytest

En unittest, puedo configurar variables en una clase y luego los métodos de esta clase pueden elegir la variable que quiera usar … class test_class(unittest.TestCase): def setUp(self): self.varA = 1 self.varB = 2 self.varC = 3 self.modified_varA = 2 def test_1(self): do_something_with_self.varA, self.varB def test_2(self): do_something_with_self_modified_varA, self.varC Así que en unittest, fue fácil organizar un […]

¿La base de datos de prueba de la unidad Django no está siendo demolida?

Tengo algunas pruebas unitarias que he escrito para probar mi aplicación Django. Un conjunto de pruebas en particular tiene mucho código en su función setUp() . El propósito de dicho código es crear datos de prueba para la base de datos. (Sí, conozco los accesorios y he optado por no usarlos en este caso). Cuando […]

proyecto de estructuración

Estoy usando pycharm en uno de mis proyectos universitarios y quería integrarlo con el módulo unittest , pero tengo un problema con la estructuración de mi proyecto. Parte de este proyecto implica generar árboles de syntax abstracta, así que creé el directorio AST y puse __init__.py allí, luego creé el módulo de expression . Quería […]