2010-11-09 24 views
3

使用Java JUnit框架並比較字符串「abcde」和「abde」,您將得到錯誤輸出'expected:< ... b [c ] d ...>卻被:< ... b [] d ...>」是否有python單元測試框架,比較字符串時提供緊湊的錯誤輸出

使用Python單元測試,我得到 「ABCDE」= 「ABDE」,這是不是所有的,如果你正在處理的有用!長串。

所以我的問題是:是否有一個python單元測試框架提供與JUnit for Java一樣的緊湊輸出?

+0

如果你沒有找到你想要的答案,你可以(例如,通過運行在其輸出端的另一個程序)發現改變蟒蛇單元測試的輸出,以匹配你想要的東西的一些方法。不知道做這種想法的最佳方式是什麼。 – Brian 2010-11-09 22:41:39

回答

1

unittest2 package是Python 2.7中的PyUnit(unittest)框架的本地特性的回溯(對Python> = 2.4)。

它包括增強的字符串比較功能。 alt text http://www.voidspace.org.uk/python/articles/unittest2.shtml#unicode-string-comparison

+0

長字符串與單個不同的單詞有什麼關係?它仍然會打印整個字符串還是隻打印區別的部分? – 2010-11-09 22:22:34

+0

我相信它會打印出相關的差異。下載它並查看它是否適用於您的用例。我想你會發現它很有用。這是您所抱怨的現有單元測試框架的直接替代品。 – 2010-11-10 00:24:10

+0

下載了unittest2的python2.6 backport。它可以工作,但它使用assertMultilineEqual比較unicode字符串。如果字符串中現在有新行,則輸出會出現亂碼。哦,至少它是有效的。我也查看了代碼,發現它使用了我不知道的標準difflib庫。這意味着我可以直接使用該庫。 – 2010-11-10 21:03:51