Skip to content

Commit 8f1bffc

Browse files
authored
#10 Report failed tests
2 parents c5ffa61 + ca7f326 commit 8f1bffc

File tree

3 files changed

+39
-4
lines changed

3 files changed

+39
-4
lines changed

src/test_case.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,19 @@ def setUp(self) -> None:
1212
def run(self) -> None:
1313
result = TestResult()
1414
result.testStarted()
15-
self.setUp()
16-
method = getattr(self, self.name)
17-
method()
15+
16+
try:
17+
self.setUp()
18+
except:
19+
result.testFailed()
20+
return result
21+
22+
try:
23+
method = getattr(self, self.name)
24+
method()
25+
except:
26+
result.testFailed()
27+
1828
self.tearDown()
1929
return result
2030

src/test_case_test.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
from test_case import TestCase
22
from was_run import WasRun
3+
from test_result import TestResult
4+
5+
6+
class TestCaseTestWithBrokenSetup(TestCase):
7+
def __init__(self, name) -> None:
8+
TestCase.__init__(self, name)
9+
10+
def setUp(self) -> None:
11+
raise Exception
12+
13+
def testFailedSetUp(self) -> None:
14+
result = self.run()
15+
assert ("1 run, 1 failed" == result.summary())
316

417

518
class TestCaseTest(TestCase):
@@ -13,6 +26,14 @@ def testFailedResult(self) -> None:
1326
result = test.run()
1427
assert ("1 run, 1 failed" == result.summary())
1528

29+
def testFailedResultFormatting(self) -> None:
30+
result = TestResult()
31+
result.testStarted()
32+
result.testFailed()
33+
assert ("1 run, 1 failed" == result.summary())
34+
1635

1736
TestCaseTest("testTemplateMethod").run()
37+
TestCaseTest("testFailedResultFormatting").run()
1838
TestCaseTest("testFailedResult").run()
39+
TestCaseTestWithBrokenSetup("testFailedSetUp").run()

src/test_result.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
class TestResult:
22
def __init__(self) -> None:
33
self.runCount = 0
4+
self.errorCount = 0
45

56
def testStarted(self) -> None:
67
self.runCount = self.runCount + 1
78

9+
def testFailed(self) -> None:
10+
self.errorCount = self.errorCount + 1
11+
812
def summary(self):
9-
return "%d run, 0 failed" % self.runCount
13+
return "%d run, %d failed" % (self.runCount, self.errorCount)

0 commit comments

Comments
 (0)