gpt4 book ai didi

python - 如何使用 python 更改断言错误的输出?

转载 作者:行者123 更新时间:2023-11-28 17:47:23 26 4
gpt4 key购买 nike

在 Mac OS X 的终端上。

assertEqual 的输出是

  File "tests/test_conditions.py", line 27, in test_if_condition
self.assertEqual(result, expected)
AssertionError: ' if (self) {\n self.addMainLabel\n self.addSubLabel\n self.setupBackground\n }\n' != ' if self\n self.addMainLabel\n self.addSubLabel\n self.setupBackground\n end\n'

但我想通过评估换行符 '\n' 并在 'AssertionError:' 之后添加换行符来获得以下输出。

  File "tests/test_conditions.py", line 27, in test_if_condition
self.assertEqual(result, expected)
AssertionError:
' if (self) {
self.addMainLabel
self.addSubLabel
self.setupBackground
}
' !=
' if self
self.addMainLabel
self.addSubLabel
self.setupBackground
end
'

最佳答案

我不认为你可以,至少,不容易。

转义的换行符来自 assertEqual 在两个字符串中的每一个上调用 repr。没有它,您也不会得到引号。如果您的任一字符串包含 !=,它会变得非常困惑。

如果您真的想篡改断言的文本,您可以捕获它,操纵它的属性,然后重新提出它。我不推荐这样做,但它是可能的:

try:
self.assertEquals(result, expected)
except AssertionError as e:
e.args = (e.args[0].replace("\\n", "\n"),) # edit the exception's message
raise

这并不能准确地给出您想要的输出(没有在字符串的开头添加额外的换行符),但它非常接近。

关于python - 如何使用 python 更改断言错误的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16128013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com