所以我正在练习一些单元测试,我对错误消息有疑问。我正在尝试创建一个自定义错误消息,该消息将在测试失败时显示。这是一个基本的Hello World程序。测试运行正常,但是这里是我收到的错误消息。
F ====================================================================== FAIL: test_StringContains
(__main__.TestSuite) ----------------------------------------------------------------------
Traceback (most recent call last): File "Testsuite.py", line 8, in test_StringContains
self.assertEqual("Hello, World", hello_world,"This is a custom error") AssertionError: 'Hello,
World' != 'Hello World' - Hello, World ? - + Hello World : This is a custom error ---------------
-------------------------------------------------------
Ran 1 test in 0.000s FAILED (failures=1)
所以这是预期的。这是我的测试套件
from HelloWorld import*
import unittest
class TestSuite(unittest.TestCase):
def test_StringContains(self):
self.assertEqual("Hello World", hello_world,"This is a custom")
if __name__ == "__main__":
unittest.main()
这是我的运行代码
hello_world = "Hello World"
print (hello_world)
超级基础,只想了解如何抛出自定义错误消息。如果测试失败,我唯一想看的是This is a custom error
,我尝试按照关于错误和放大器的Python文档进行操作。这里有例外https://docs.python.org/2/tutorial/errors.html,但不确定如何实现它。
我不知道这是否可行。任何帮助是极大的赞赏。谢谢
答案 0 :(得分:2)
你可以做的是通过将assertEqual包装在try except语句中来捕获AssertionError,然后打印错误:
try:
self.assertEqual("Hello World", hello_world,"This is a custom error")
except AssertionError as e:
print(e)
捕获AssertionError时有一个缺点:unittest模块无法再计算错误。 (Stacktraces并不漂亮,但它们的目的是准确地指向发生错误的堆栈中的点。)