Coverage - Frage
Verfasst: Sonntag 24. Januar 2021, 13:53
Hallo,
ich habe ein Verständnisproblem mit Coverage.py. Ich habe zwei .py Dateien (eine mit einer einfachen Addition und eine test_x.py, die verschiedene Testfälle beinhaltet).
Wenn ich jetzt Coverage run und Report ausführe, erscheint bei cov lediglich 25% und ich habe keine Ahnung, warum. In Java beispielsweise bezieht sich die Coverageanzeige auf die durchgeführten Testfälle in der test_x. Datei. Dort kann ich direkt nachvollziehen, dass diese Datei als Grundlage verwendet wird. Bei Python sehe ich keine Systematik, wie dieser Coveragetest eigentlich funktioniert.
Könnte mir das jemand erklären?
Der Inhalt der Dateien ist folgender:
addition.py
def addition(a,b):
if a < 0:
return 0 # nur zum testen, ob Coverage die Zweige beachtet.
return a+b
test_addition.py
import unittest
from app import addition
class TestAddition(unittest.TestCase):
def test_addition(self):
self.assertEqual(addition(1,2),3)
def test_addition2(self):
self.assertEqual(addition(0,2),0)
Nach meinem Java-Verständnis müsste der Coveragetest durch den zweiten Testfall 100% sein. Er ist aber lediglich bei 25%
Name Stmts Miss Cover
----------------------------
app.py 4 3 25%
ich habe ein Verständnisproblem mit Coverage.py. Ich habe zwei .py Dateien (eine mit einer einfachen Addition und eine test_x.py, die verschiedene Testfälle beinhaltet).
Wenn ich jetzt Coverage run und Report ausführe, erscheint bei cov lediglich 25% und ich habe keine Ahnung, warum. In Java beispielsweise bezieht sich die Coverageanzeige auf die durchgeführten Testfälle in der test_x. Datei. Dort kann ich direkt nachvollziehen, dass diese Datei als Grundlage verwendet wird. Bei Python sehe ich keine Systematik, wie dieser Coveragetest eigentlich funktioniert.
Könnte mir das jemand erklären?
Der Inhalt der Dateien ist folgender:
addition.py
def addition(a,b):
if a < 0:
return 0 # nur zum testen, ob Coverage die Zweige beachtet.
return a+b
test_addition.py
import unittest
from app import addition
class TestAddition(unittest.TestCase):
def test_addition(self):
self.assertEqual(addition(1,2),3)
def test_addition2(self):
self.assertEqual(addition(0,2),0)
Nach meinem Java-Verständnis müsste der Coveragetest durch den zweiten Testfall 100% sein. Er ist aber lediglich bei 25%
Name Stmts Miss Cover
----------------------------
app.py 4 3 25%