nose で docstring が複数行あった際の表示
Python の nose はテストメソッドの docstring を表示してくれる。
たとえばこんなテストファイルがあるとする。
# -*- coding: utf-8 -*- from unittest import TestCase def add(x, y): return x + y class TestSample(TestCase): def test_add(self): """ add() should return result of x + y. """ ret = add(1, 2) self.assertEqual(ret, 3)
ってのを
$ nosetest -v test_sample.py
ってやると
add() should return result of x + y. ... ok ---------------------------------------------------------------------- Ran 1 test in 0.002s OK
と意図通りに表示される。
これが、
class TestSample(TestCase): def test_add(self): """ add() should return result of x + y. """ ret = add(1, 2) self.assertEqual(ret, 3)
みたいに docstring が複数行ある場合は、
add() ... ok ---------------------------------------------------------------------- Ran 1 test in 0.002s OK
と 2 行目が表示されない。
じゃあ
class TestSample(TestCase): def test_add(self): """ add() \ should return result of x + y. """ ret = add(1, 2) self.assertEqual(ret, 3)
こうすると…
add() should return result of x + y. ... ok ---------------------------------------------------------------------- Ran 1 test in 0.002s OK
となる。
docstring 内で改行したい理由は 79 文字以上あると pep8 を実行すると警告が出るから。
折角 docstring でテスト内容を表示できるのだから長い文章を書きたい場合がある。
こういう場合どうするのが良いんだろう。
nose のプラグインを見つけたが、意図通りには動かなかった…。
自分で作っちゃうのが良いのかなぁ。