2013-09-02 6 views
5

Ich versuche, Abdeckung mit Django zu verwenden, aber ich bekomme anscheinend falsche Ergebnisse. Meine App "Statistiken" genannt, und ich habe diesen Test:Warum ist die Python-Abdeckung so, dass Zeilen übersehen wurden?

class ListSchoolsTest(TestCase): 
    def test_initial_list(self): 
     self.client.login(username='skeezy', password='skeezy') 
     resp = self.client.get("/stats/list_schools/") 
     self.assertEqual(resp.status_code, 200) 

Auf der Kommandozeile, ich laufe:

coverage run --source="." manage.py test stats 

Und der Test bestanden. Alle meine Ansichten sind zur Zeit in Statistiken/views.py

Aber wenn ich „Berichterstattung Bericht“ laufen, bekomme ich diese Zeile:

Name     Stmts Miss Cover 
---------------------------------------- 
<snip> 
stats/views   110 110  0% 

Jede Idee, was ich bin (nicht), das zu tun verursachen würde Deckung alle Linien melden, die in stats/views.py fehlen, obwohl sie getroffen werden müssten, damit der Test bestanden wird? (Genau wie ein Gürtel-und-Hosenträger, lege ich eine Print-Aussage in meine Sicht, und es wird definitiv getroffen.)

+0

Ich habe das gleiche Problem. In Windows funktioniert die Abdeckung korrekt, aber wenn ich an Travis sende, werden alle Anweisungen, die nicht im Test selbst enthalten sind, übersehen. – BoppreH

Antwort

0

Vielleicht haben Sie Pip Ihre App ohne die -e Flag installiert? Dann werden die Module nicht aus Ihrem Projektverzeichnis importiert, sondern aus dem Pfad, in dem sie installiert wurden, und der Erfassungsbereich denkt, dass es sich um unterschiedliche Dateien handelt.