unittest.TestCase
에서 assertEquals()
을 사용하고 있습니다. 지금하고 싶은 것은 함수를 호출하고 어설 션이 실패 할 때 거기에서 뭔가를하면됩니다. 이렇게하는 방법이 있는지 궁금합니다.단위 테스트 어설 션 실패시 코드 실행
3
A
답변
3
try
/except
블록으로 모든 테스트를 랩핑하는 runTest
메소드 (the documentation에 언급 된대로)를 작성하십시오. 테스트 코드를 깨끗하게 유지할 수 있기 때문에 실제로이 작업을 수행해야하는 경우이 방법을 사용하는 것이 좋습니다.
2
캐치를 :
import unittest
def testFailed():
print("test failed")
class T(unittest.TestCase):
def test_x(self):
try:
self.assertTrue(False)
except AssertionError:
testFailed()
raise
if __name__ == "__main__":
suite = unittest.defaultTestLoader.loadTestsFromTestCase(T)
unittest.TextTestRunner().run(suite)
또 다른,보다 일반적인 가능성이하는 것입니다 : 당신이 그것을하지 말아야하지만, 당신이 정말로 원하는 경우, 여기에 간단한 예입니다하기 위해 일반적으로
try:
# something
except AssertionError:
# do something
어설 션이 실패 할 때만 코드를 실행하고 싶습니다. 나는 두 가지 상황에서 마침내 코드가 실행될 것이라고 생각한다. –
예. 맞습니다. 그냥 except와 under를 사용하는 것은 예외입니다. –