/ / Acelere o unittest no Django - django, performance, teste de unidade

Acelere o unittest no Django - Django, performance, testes unitários

Descobri que é lento realizar menos testes, especialmente com operações de banco de dados no Django.

Ele passou por todo o processo de criação de banco de dados, tabelas, acessórios, testando e finalmente destruindo-os.

Levei quase meio minuto para fazer todas essas coisas.

Sem considerar a velocidade da minha máquina, existe alguma alternativa para acelerar o unittest no Django ou alguma dica de aceleração?

Respostas:

2 para resposta № 1

O que faço é mudar para o SQLite quando quero executar testes. Demora muito menos tempo para configurar o banco de dados de teste no SQLite.

Você pode fazer isso facilmente usando um arquivo de configurações modificado:

$ python manage.py test my_app --settings=test_settings

Ou no meu caso,

$ python manage.py test my_app --settings=settings.test

como eu uso o esquema "configurações como um pacote".


2 para resposta № 2

Você pode acelerar os testes executando-os sqlite db armazenado na memória

    DATABASES["default"] = {
"ENGINE": "django.db.backends.sqlite3",
"NAME": ":memory:"
}

0 para resposta № 3

Dê uma olhada Este artigo. Tem muitas dicas úteis, como:

  • Alterar a função de hash de senha para MD5 (fez uma grande melhoria para mim).
  • Usando um banco de dados mais rápido na memória.
  • Desativando aplicativos e middleware desnecessários.