Ich versuche, einen benutzerdefinierten Pyunit-Testsuite-Ausführungsbericht zu generieren, aber mit einem 'no attributue' Fehler zu schlagen.Generieren von benutzerdefinierten Pyunit-Bericht
import json
import unittest
import sys
class MyTestResult(unittest._TextTestResult):
def addSuccess(self, test):
TestResult.addSuccess(self, test)
def addError(self, test, err):
TestResult.addError(self, test, err)
def addFailure(self, test, err):
TestResult.addFailure(self, test, err)
class MyTestRunner(unittest.TextTestRunner):
def _makeResult(self, verbosity):
return MyTestResult(self.stream, self.descriptions, verbosity)
class TestServer(unittest.TestCase):
def testFunction1(self):
res = True
self.assertTrue(res, "test case failed")
def testFunction2(self):
res = 5
self.assertEqual(res, 5)
def testFunction3(self):
res = True
self.assertEqual(res, True, 'test case failed')
def testFunction4(self):
res = False
self.assertEqual(res, True, 'test case failed')
# Create an instance of each test case.
testCase1 = TestServer('testFunction1')
testCase2 = TestServer('testFunction2')
testCase3 = TestServer('testFunction3')
testCase4 = TestServer('testFunction4')
# Add test cases to the test suite.
testSuite = unittest.TestSuite()
testSuite.addTest(testCase1)
testSuite.addTest(testCase2)
testSuite.addTest(testCase3)
testSuite.addTest(testCase4)
# Execute the test suite.
testRunner = unittest.MyTestRunner(verbosity=2)
testRunner.run(testSuite)
Der Fehler, den ich bekomme, ist unten. Ich benötige auch Hilfe, um meinen endgültigen Testbericht so anzupassen, dass ich einige zusätzliche Informationen hinzufügen kann, die die eine Pyunit generiert. Was sollte ich in der 'MyTestResult' Klasse mehr implementieren?
Zusätzlich suche ich nach einem Vorschlag zum Ändern des Testberichts, der standardmäßig unten angezeigt wird.
testRunner = MyTestRunner(verbosity=2)
# To refer your test runner.
Es gibt weitere Probleme:
bash-3.2$ python myreport.py
testFunction1 (__main__.TestServer) ... ERROR
testFunction2 (__main__.TestServer) ... ok
testFunction3 (__main__.TestServer) ... ok
testFunction4 (__main__.TestServer) ... FAIL
den Code verwenden, wie ist, bekomme ich folgende Fehlermeldung: Datei "myreport.py", Zeile 49, in testRunner.run (Testsuite) Datei „/ Benutzer/anjangam/pyvenv/venv/lib/python2.7/site-packages/unittest.py ", Zeile 330, in __call__ Test (Ergebnis) Datei" /users/anjangam/pyvenv/venv/lib/python2.7/site "packages/unittest.py", Zeile 209, in __call__ result.addError (self, self .__ exc_info()) Datei "meinbericht.py", Zeile 10, in addError super (MyTestResult, self) .addError (test , err) TypeError: muss type sein, nicht classobj –
AnilJ
@AnilJ, Check this out: http://ideone.com/AF4n6w – falsetru
Mit dieser Zeile löst 'unittest._TextTestResult.addFailure (self, test, err)' das Problem. – AnilJ