Leta pouzivam pytest-django a testy mam jak dedeny z TestCase z djanga, tak jen funkce ala py.test a zadny problemy nemam. Na jenkinsu testy poustim toxem. Na pytestu je super to, ze pokud nechces, nemusis stary testy migrovat, one je (podobne jako nose) v pohode pusti. Abych se priznal, kdyz potrebuju db, tak pouziiju djangovej TestCase,`@pytest.mark.django_db` sem nikdy nezkousel. Fixtury teda (pokud je to teda nutny) valim pres django masinerii.
Nechapu to co pises o migracich, zadny migrace by se ti pri testovani delat nemeli. Db se vytvori z aktualniho modelu... --- In Perl you shoot yourself in the foot, but nobody can understand how you did it. Six months later, neither can you. | print 'aknerats'[::-1] 2016-04-13 11:26 GMT+02:00 Věroslav Kaplan <[email protected]>: > Zdravím vespolek, > > a prosím o nakopnutí. > > TL;DR: Jaký je doporučený framework pro testování Django aplikací? > pytest-django? > > -- > Plná verze: > > Snažím se zmigrovat jeden Django projekt z Django unit tests na py.test . > Mám Django==1.8, pytest-django==2.9.1 a příslušný pytest, testovací > databázi mám defaultní sqlite. > > Program v databázi očekává nějaké objekty/fixtures, které do databáze > nahraju v průběhu migrací. Objekty vytvářím pomocí volání RunPython v > migracích. > > Testy spouštím jednak u sebe na vývojářském laptopu a taky na Jenkinsu (CI > řešení z minulého století). Když testy na Jenkinsu projdou, tak je Jenkins > nahraje projekt na testovací server pro zákazníka. > > Když spustím testy na laptopu, tak projdou bez problémů. Když spustím > testy na Jenkinsu, tak spadnou testy, které očekávají, že v databázi jsou > nějaké objekty. > > Obě testovací prostředí používají stejný test_settings a stejné verze > balíčků z pipu. Liší se mi jen verze Pythonu 2.7.10 vs 2.7.5 (Fedora vs > CentOS), ale nepředpokládám tam problém. > > Na co jsem přišel: > - Vypadá to, že py.test runner spouští migrace, protože se vytvoří všechny > tabulky a sloupce v tabulkách (ale jistě to nevím - tohle se může vytvořit > i z popisu modelů). > - Vypadá to, že py.test spouští i kód v RunPython - když jsem tam vyhodil > výjimku, tak testy spadly na výjimce. > - Ale objekty vytvořené pomocí RunPython pak nejsou. > > Failují jak staré testy odvozené od TestCase, tak nové pytest testy. > > Setkal se s tím někdo? Jaký je aktuálně doporučený testovací framework pro > Django aplikace? > > Za odpověď děkuji > > > Věroš > -- > --V.Kaplan > > -- > -- > E-mailová skupina [email protected] > Správa: http://groups.google.cz/group/django-cs > --- > Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny > „django-cs“ ve Skupinách Google. > Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, > zašlete e-mail na adresu [email protected]. > Chcete-li tuto diskusi zobrazit na webu, navštivte > https://groups.google.com/d/msgid/django-cs/CABWwdO-6yb1dLcFGA_W83TGBdxv3MJuTaSms-Gh60Fu944g%3DRA%40mail.gmail.com > <https://groups.google.com/d/msgid/django-cs/CABWwdO-6yb1dLcFGA_W83TGBdxv3MJuTaSms-Gh60Fu944g%3DRA%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > Další možnosti najdete na https://groups.google.com/d/optout. > -- -- E-mailová skupina [email protected] Správa: http://groups.google.cz/group/django-cs --- Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs ve Skupinách Google. Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu [email protected]. Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/django-cs/CA%2B7MNVrKz0bN06xKpNufJzx2GPMjWZyks4Yjh8B%3DFCyDak1vWw%40mail.gmail.com. Další možnosti najdete na adrese https://groups.google.com/d/optout.
