@peccul is peccu

(love peccu '(emacs lisp cat outdoor bicycle mac linux coffee))

Emacs-TDDを導入する

最近Jestを使ってTDDぽく開発し始めてみた。 emacsからもテストが通ったかどうか確認しやすいように設定した。

使ったのはemacs-tdd. .elをload-pathに設置した。 github.com

ファイル保存時にrecompileを呼んで、その結果に応じてmode-lineにマークを表示してくれる。

  • テスト中
    f:id:peccu:20190105185252p:plain
  • テスト失敗
    f:id:peccu:20190105185322p:plain
  • テスト成功
    f:id:peccu:20190105185310p:plain

ヘルプによるとrecompileはcompileを呼び、それはcompile-commandを実行するとのこと。
js2-modeでnpm testを実行するならこんな感じの設定になる。

(require 'tdd)
;; tdd runs `recompile' when file saved.
;; `recompile' exec `compile-command'
(add-hook 'js2-mode-hook
          (lambda ()
              (set (make-local-variable 'compile-command) "npm test")))

今回の場合、前提としてpackage.jsonにjestを呼ぶ設定がしてある。

  • package.json
...
  "scripts": {
    "test": "jest"
  },
...