読者です 読者をやめる 読者になる 読者になる

noseとdoctestを同時に使う

noseでテストを実行するとき、doctestを同時に使うにはどうすればよいのでしょう?

noseのドキュメントを見ると、nosetests に --with-doctest コマンドライン引数を渡すと、
doctestもチェックしてくれるようです。
コマンドラインから実行するなら簡単です。

 > nosetests spam.py --with-doctest


しかし、

if __name__ == "__main__":
    import nose
    nose.runmodule()

のように、モジュールを直接実行して、テストできるようにしたいです。


そして、nose.runmoduleには、argvという引数があります。

しかし!nose.runmodule(argv=["--with-doctest"])では、動かないようです。
何故なんでしょう?
わからないので、結局こうすることにしました。

def main():
    from subprocess import call
    call(["nosetests", "--with-doctest", __file__])

無様ですけど、背に腹は代えられません。