这个question给出了assertEqual(expected, actual)的顺序,尽管是针对unittest包。但是Pycharm,使用pytest,根据actual==expected的顺序打印出“Expected:...”和“Actual...”。这太令人困惑了pytest的正确顺序是什么?源代码和在线文档没有说。(我还注意到JUnit和TestNG在这一点上不一致。
assertEqual(expected, actual)
actual==expected
7z5jn7bk1#
assertEquals(expected, actual)
评论暗示这可能是PyCharm显示消息的方式比pytest本身更有问题-即。此消息可能不存在于PyCharm之外...
pytest
assert actual == expected
举例来说:
def test_actual_expected(): expected = 4 actual = 2+1 assert actual == expected
将失败并显示消息
sdnqo3pr2#
BDFL不喜欢actual/expected terminology,文档是specifically changed来解决这个问题。如果您的工具希望参数按照一定的顺序排列,那么我认为最正确的做法是始终执行对您的工具有效的操作。
jtoj6r0c3#
PyCharm设置中有一个选项用于选择顺序。它位于“高级设置”部分,名为“交换Pytest中实际和预期Assert的顺序”。不幸的是,它是默认选中的(可能是由于某些历史原因),因此会给出默认生成的误导性显示。
3条答案
按热度按时间7z5jn7bk1#
JUnit
Pytest(Pycharm)
评论暗示这可能是PyCharm显示消息的方式比
pytest
本身更有问题-即。此消息可能不存在于PyCharm之外...举例来说:
将失败并显示消息
sdnqo3pr2#
BDFL不喜欢actual/expected terminology,文档是specifically changed来解决这个问题。
如果您的工具希望参数按照一定的顺序排列,那么我认为最正确的做法是始终执行对您的工具有效的操作。
jtoj6r0c3#
PyCharm设置中有一个选项用于选择顺序。
它位于“高级设置”部分,名为“交换Pytest中实际和预期Assert的顺序”。不幸的是,它是默认选中的(可能是由于某些历史原因),因此会给出默认生成的误导性显示。