pythonのdoctestが凄くいい。
コメントに書くと、テストが簡単に実行できる。
ただ、以下のテストを実行してみるとわかるのですが、
日本語の扱いに難有り。テスト結果としての文字列をu’\u308f’みたいに書かないといけない。
環境はpythonは2.7.1、windows7です。
# encoding: utf-8 def doctestJapan(no): """ >>> doctestJapan(0) u'tiro finale' >>> doctestJapan(1) こんなの絶対おかしいよ >>> doctestJapan(2) # わけがわからないよ u'\u308f\u3051\u304c\u308f\u304b\u3089\u306a\u3044\u3088' >>> doctestJapan(3) u'わけがわからないよ' """ if no == 0: return u'tiro finale' elif no == 1: print u'こんなの絶対おかしいよ' elif no == 2: return u'わけがわからないよ' if __name__ == "__main__": import doctest doctest.testmod() |
こんな実行結果
********************************************************************** File "C:\Users\xxxxxx\.vim_junk\2012\2012-02-08-071611.py", line 10, in __main__.doctestJapan Failed example: doctestJapan(2) Expected: u'わけがわからないよ' Got: u'\u308f\u3051\u304c\u308f\u304b\u3089\u306a\u3044\u3088' ********************************************************************** 1 items had failures: 1 of 4 in __main__.doctestJapan ***Test Failed*** 1 failures.
上記を見ると、ふつうにu’わけがわからないよ’と書いた部分はテストが通っていない。
ただ、「こんなの絶対おかしいよ」の部分は文字列をprintした結果でテストしているので、
うまくいっている。