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())できれば解決するはず。