Acabo de actualizar de Django 1.11 a 2.0. No cambié nada en el código excepto incompatibilidades hacia atrás:

  • cambiando url a path con la ruta en lugar del argumento regex
  • agregando algunos argumentos on_delete donde había olvidado

Aquí están mis pruebas unitarias ejecutadas en local antes y después de la migración:

  • antes: Ran 496 tests in 62.891s
  • después: Ran 496 tests in 157.244s

He probado con mi CI que se ejecuta en un entorno Heroku (para asegurarme de que no esté relacionado con mi entorno local), el mismo resultado (2 veces más para ejecutar las pruebas).

Pregunta

¿Tienes idea de lo que está pasando aquí? ¿Cómo depurarías esto?

1
David D. 23 sep. 2019 a las 13:21

1 respuesta

La mejor respuesta

Encontré la respuesta en el registro de cambios de Django aquí

El recuento de iteraciones predeterminado para el hash de contraseña PBKDF2 se incrementa de 36.000 a 100.000.

Como estoy creando muchos usuarios en mis pruebas unitarias, este cambio tuvo un gran impacto.

Para la comparación, definiendo en settings.py esto:

PASSWORD_HASHERS = ('django.contrib.auth.hashers.MD5PasswordHasher',)

Conducir a pruebas 5 veces más lentas: Ran 496 tests in 31.781s

Supongo que la solución correcta para realizar pruebas rápidas es definir un valor PASSWORD_HASHERS personalizado al ejecutar las pruebas.

3
David D. 23 sep. 2019 a las 15:00