2010-12-10 7 views
6

Ho un'applicazione Django, miaApp. In esso, c'è un file tests.py che definisce un numero di casi di test usando la classe django.test.TestCase. Ad esempio, uno di questi è chiamato WebViews e ha un metodo di prova check_status_codes.Django non esegue test con il test manage.py, a meno che non sia specificata un'app e un metodo di prova specifico

Quando eseguo ./manage.py test, il database viene creato con i miei dati iniziali, ma poi mi dice che ha eseguito 0 test. Ottengo risultati simili (test non in esecuzione) se faccio questo:

prova ./manage.py myApp

o anche questo:

./manage.py myApp prova .WebViews

Tuttavia, se eseguo

test.WebViews.check_status_codes ./manage.py

quindi che il metodo di prova esatto viene eseguito come previsto.

Posso stringare un mucchio di metodi di test in questo modo e farli funzionare, ma questo diventa molto noioso e ho la sensazione che mi manchi qualcosa.

Eventuali suggerimenti o suggerimenti su cosa fare?

Grazie!

risposta

8

Credo che la convenzione con i test di unità sia quella di sottoporre a test i metodi di test. Ad esempio:

class FooTest(TestCase): 

    def setUp(self): 
     # do setup stuff here 
     pass 

    def tearDown(self): 
     # do teardown here 
     pass 

    def test_one_equals_one(self): 
     self.assertEqual(1, 1, "One did not equal 1") 
+0

Grazie mille, ha funzionato! Non ho pensato di provarlo. – lunafiko

Problemi correlati