2014/11/08 VimConf 2014 thinca
- thinca
- Twitter: @thinca
- GitHub: thinca
- マンボウの人
- 高まるテスト需要
- TDD も一般的になってきた
- テスティングフレームワークも 充実
- Ruby - RSpec/test-unit
- Java - JUnit/TestNG
- Python - testunit/doctest
- JavaScript - QUnit/mocha
- Haskell - doctest/hspec
- C++ - CppUnit/Google Test
Vim script でも テストしたい!
Vim script に テスティング フレームワークはあるの?
- UT (Luc Hermitte)
- VimTap (Meikel Brandmeyer)
- runVimTests (Ingo Karkat)
- spec.vim (Tom Link)
- tAssert (Tom Link)
- simpletap.vim (tyru)
- vader.vim (junegunn)
- vesting (Shougo)
- vimUnit (Staale Flock)
- vroom (Google)
- vspec (Kana Natsuno)
- owl.vim (osyo-manga)
- vimtest (kannokannno)
- themis.vim (thinca)
- ほかにもたくさん!
-
みんなオレオレフレームワークを 作っているので乱立している
-
デファクトスタンダードと 呼べるものはない
-
大きく分けて2つに分けられる
- Vim 内から実行するもの
- シェルから実行するもの
-
シェルから実行できるものは少ない
-
Vim 内から実行するもの → マルチプラットフォーム
-
シェルから実行するもの → CI するならシェル実行は必須 → Windows 向けコマンドは まず用意されていない
-
CI したいのでシェルから 実行したい
-
Windows でもテストしたい
-
この両者を満たす物はない…
_人人人人人人_ > themis.vim <  ̄^Y^Y^Y^Y^Y^Y ̄
- シェルから実行可能
- シンプルなテストルール
- 複数のテストスタイル
- 様々な結果フォーマット
- themis コマンドを提供
- 適当にパスを通して使う
- Windows/Linux 両対応
- 関数1つでテスト1つ
- 例外を投げたら失敗、 それ以外は成功
- 例外を投げるための ヘルパーがある
- 書き方はひとつ!じゃない!!
- .vim と .vimspec(独自DSL) に対応
- helper も好きなものを使える
- tap/dot/spec
- 今後追加予定
- テストを書いたら 実行しないと意味がない
- Vim script でも CI したい!
before_script:
- git clone https://github.com/thinca/vim-themis /tmp/vim-themis
script:
- /tmp/vim-themis/bin/themis
- Windows でもテストできる
- 詳細はブログで
- vimspec のスコープをいい感じにしたり
- エラー見やすくしたり
- もっと helper 増やしたり
- もっと reporter 増やしたり
- がんばる
-
Vim script でもテストは書ける
-
CI もできる
-
テスト書こう!