Điều đơn giản nhất là ghi tệp đầu ra, sau đó đọc nội dung của nó, đọc nội dung của tệp vàng (dự kiến) và so sánh chúng với đẳng thức chuỗi đơn giản. Nếu chúng giống nhau, hãy xóa tệp đầu ra. Nếu chúng khác nhau, hãy khẳng định.
Bằng cách này, khi các bài kiểm tra được thực hiện, mọi bài kiểm tra không thành công sẽ được thể hiện bằng một tệp đầu ra và bạn có thể sử dụng công cụ của bên thứ 3 để khác biệt chúng với các tệp vàng (Beyond Compare là tuyệt vời cho điều này).
Nếu bạn thực sự muốn cung cấp đầu ra khác biệt của riêng mình, hãy nhớ rằng Python stdlib có mô-đun difflib. Hỗ trợ mới nhất trong Python 3.1 bao gồm một assertMultiLineEqual
phương thức sử dụng nó để hiển thị các điểm khác biệt, tương tự như sau:
def assertMultiLineEqual(self, first, second, msg=None):
"""Assert that two multi-line strings are equal.
If they aren't, show a nice diff.
"""
self.assertTrue(isinstance(first, str),
'First argument is not a string')
self.assertTrue(isinstance(second, str),
'Second argument is not a string')
if first != second:
message = ''.join(difflib.ndiff(first.splitlines(True),
second.splitlines(True)))
if msg:
message += " : " + msg
self.fail("Multi-line strings are unequal:\n" + message)