Die unittest
assert gibt zusätzliche Informationen (möglicherweise mehr als du brauchst). Inspiriert von Raymond Hettinger talk. Dies ist eine Teilantwort, die nur die Werte für a
und b
(letzte Zeile des Ausgangs) angibt, nicht die zusätzliche Introspektion, die Sie auch suchen, die in pytest
eindeutig ist.
import unittest
class EqualTest(unittest.TestCase):
def testEqual(self, a, b):
self.assertEqual(a, b)
a, b = 1, 2
assert_ = EqualTest().testEqual
assert_(a, b)
Ausgabe
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
<ipython-input-4-851ce0f1f668> in <module>()
9 a, b = 1, 2
10 assert_ = EqualTest().testEqual
---> 11 assert_(a, b)
<ipython-input-4-851ce0f1f668> in testEqual(self, a, b)
4
5 def testEqual(self, a, b):
----> 6 self.assertEqual(a, b)
7
8
C:\Anaconda3\lib\unittest\case.py in assertEqual(self, first, second, msg)
818 """
819 assertion_func = self._getAssertEqualityFunc(first, second)
--> 820 assertion_func(first, second, msg=msg)
821
822 def assertNotEqual(self, first, second, msg=None):
C:\Anaconda3\lib\unittest\case.py in _baseAssertEqual(self, first, second, msg)
811 standardMsg = '%s != %s' % _common_shorten_repr(first, second)
812 msg = self._formatMessage(msg, standardMsg)
--> 813 raise self.failureException(msg)
814
815 def assertEqual(self, first, second, msg=None):
AssertionError: 1 != 2
Warum nicht 'pytest' selbst benutzen? – pylang
@pylang Ich habe kein Problem mit der Wiederverwendung der Teile von py.test, die das zulassen, aber ich kann nicht einfach py.test selbst verwenden. Für die Zwecke meiner Frage sage ich, Sie sollten zB annehmen. dass ich in diesem Kontext keine Tests durchführe. –