Bonjour,
Je viens de commencer a faire des tests Django et plusieurs questions foisonne dans mon esprit. Alors si vous pouviez discutez de certaines, je vous en remercierai jamais assez!
Tout d'abord je vous explique un peu ce que j'ai fait pour le moment (après longue observation du github de ZdS):
- J'ai construit des fichiers
factories.py
dans chacune de mes applications, me permettant de créer des instances pour mes tests - J'ai créé un dossier
tests
dans chacune de mes applications ou se trouve un fichiertest_models.py
Les tests sont-ils toujours aussi long a lancer ?
Je ne sais pas pour vous, mais personnellement le temps de lancer la DB de test est juste horrible, je doit attendre environ 20 secondes entre deux lancement de tests super basique puisque j'apprends…
Comment faire pour que mes tests dans les dossiers tests
se lancent a l'appel de python manage.py test
?
Car pour le moment je suis obliger de taper python manage.py test app/myApp/tests
Comment lancer mes tests depuis Travis ?
Cela est peut être lié a la question précédente mais je pense que ça vient plus de mon .travis.yml
car jusque la, Travis ne me lance aucun tests et me dit que tout est OK pour les 0 tests lancer.. Mais je ne vois pas de test dans le fichier de travis du ZdS
Comment résoudre une erreur du type :
1 | FactoryError: Cannot generate instances of abstract factory CompanyStatusFactory; Ensure |CompanyStatusFactory.Meta.model is set and CompanyStatusFactory.Meta.abstract is either not set or False. |
Voici quelques morceau de mon code pour aider
Factories.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # coding: utf-8 import factory from app.company.models import Company, CompanyStatus class CompanyStatusFactory(factory.DjangoModelFactory): FACTORY_FOR = CompanyStatus status = factory.Sequence('Status No{0}'.format) @classmethod def _prepare(cls, create, **kwargs): status = super(CompanyStatusFactory, cls)._prepare(create, **kwargs) if create: status.save() return status |
test_models.py
1 2 3 4 5 6 7 8 9 10 11 12 | from django.test import TestCase from app.company.factories import CompanyStatusFactory, CompanyFactory from app.mentor.factories import MentorFactory class CompanyModelsTest(TestCase): def setUp(self): self.status1 = CompanyStatusFactory() self.company1 = CompanyFactory() def test_get_mentors_count(self): self.assertEqual(self.company1.mentors.count, self.company1.get_mentors_count) |
Merci d'avance de m'aider. Parce que j'ai vraiment l'impression de stagner, pourtant je trouve plein de documentation…