¿Hay corredores de prueba de Python + Django que sean rápidos?

¿Qué es lo suficientemente rápido? Esto es algo muy subjetivo, y hay dos tipos de pruebas que probablemente merecen su atención:
Prueba funcional / Prueba E2E:

  • Pruebe los requisitos comerciales (generalmente con selenio).
  • Lento

Prueba de unidad:

  • Pruebe sus requisitos por función.
  • Por lo general, muy rápido.

Ahora, ¿cómo puede optimizar rápidamente su prueba?

  1. Use sqlite como su base de datos de prueba para la máquina local. – esta es probablemente la optimización más rápida que puede hacer, ya que solo se ejecuta en la memoria.
  2. Utilice la solicitud de fábrica para pruebas unitarias, elimina toda la configuración que necesita Django (Middleware, Context, etc.) para cada prueba, más como una caja negra.

Suponiendo que está utilizando algún tipo de herramienta de Integración Continua (por ejemplo, Jenkins), entonces no debería preocuparse en absoluto. Simplemente ejecute un poco de su prueba en su local y deje que Jenkins se encargue de todo su conjunto de pruebas.

Pero para responder tu pregunta:
django-pytest / django-nose: tienen una función específica para reutilizar la base de datos creada previamente para evitar la configuración.