« ^ »

Pythonのdoctestを実行するflycheckのchecker

所要時間: 約 1分

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