在Python测试中比较长字符串输出时出错

时间:2012-10-12 05:24:09

标签: python string unit-testing subprocess python-unittest

我正在测试一个Python脚本,它会抛出一堆字节(作为字符串)作为执行结果。

首先,我得到的结果是:

myOutput = subprocess.check_output(["python","../src/myScript.py"])

有了这个,我执行脚本并获得输出。

然后我将这个结果与一个非常长的预期输出进行比较:

expOutput = "382d006e756c6c2c7465737453657450726f706572747953823c75652c6c75614170702c63617074696f6e2c486f6c61206d756e646f203200"
self.assertEqual(myOutput, expOutput, "Script output is not the expected") 

(这只是一个愚蠢的测试,我正在努力让事情发挥作用)。

问题:我的测试失败。调试我发现值相等。

任何人都可以帮助我吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

在被调用脚本的输出结尾处可能是一个流浪的eol。试试这个:

myOutput = myOutput.strip()
self.assertEqual(myOutput, expOutput, "Script output is not the expected")