python / py.test:将断言输出写入容器

时间:2015-03-29 11:32:50

标签: python assert pytest

我正在进行一些自动化测试,其中我在两个不同来源的两个数据列表之间进行比较。

我使用assert来比较字符串,但我无法保存断言结果。

有什么建议吗?它可能正在使用其他方法,但我发现断言是现在最有用的。

感谢。

2 个答案:

答案 0 :(得分:1)

尝试这样的事情

try:
    assert something==otherthing
except:
    f=open(log,"a")
    f.write("Assertion failed comparing something to otherthing\n")
    f.close()

答案 1 :(得分:1)

您可以使用此方法提供包含断言的消息:

assert something == otherthing, "Assertion failed comparing {} to {}".format(something, otherthing)

执行此操作时,您应该看到值显示在您只看到空白的位置" AssertionError"消息。

我建议使用pytest作为自动测试的基础。 pytest中的断言被重新格式化以提供对值的更好的反省,使得这个额外的步骤变得多余;看看this pytest introduction,特别是" test_markdown"你可以看到断言如何获得一些自动内省的部分。