Pythonのdoctestを実行するflycheckのcheckerを書いた。
実装
(flycheck-define-checker python-doctest
"Python doctest flycheck checker"
:command ("python" "-m" "doctest" source-inplace)
:modes (python-mode)
:enabled (lambda () t)
:error-patterns ((error
line-start (repeat 70 "\*") "\n"
line-start "File " "\"" (file-name) "\", line " line ", in " (+ printing) "\n"
(message (+ (not "*"))))))
flycheck-add-checkerなどでcheckerを追加すればよい。
(flycheck-add-next-checker 'python-flake8 'python-doctest)
課題
相対importを用いているファイルのテストができない。 次の2つで解決できるはず。
- テストを実行するワーキングディレクトリを指定できるようにする。
- テスト対象の指定をパスではなくdotted nameで指定する。
- Djasngoでのdoctestができない。 Djangoの設定読み込みが(django.seutp())できれば解決するはず。