Setup deno environment for vim
Deno のテストをいい感じに Vim
で実行できるように環境構築。
vim-test の導入
テスト実行には、以下のプラグインが有名そうだったので導入。
インストールは dein.vim だとこんな感じ。
[[plugins]] repo = 'vim-test/vim-test' depends = ['neoterm'] on_cmd = ['TestNearest', 'TestFile', 'TestSuite', 'TestLast', 'TestVisit'] hook_add = ''' nnoremap <silent> <space>tn <cmd>TestNearest<cr> nnoremap <silent> <space>tf <cmd>TestFile<cr> nnoremap <silent> <space>ts <cmd>TestSuite<cr> nnoremap <silent> <space>tl <cmd>TestLast<cr> nnoremap <silent> <space>tg <cmd>TestVisit<cr> let test#strategy = { \ 'nearest': 'neoterm', \ 'file' : 'neoterm', \ 'suite' : 'neoterm', \ } let test#javascript#denotest#options = { \ 'all': '--no-check --unstable -A' \ } ''' [[plugins]] repo = 'kassio/neoterm' on_cmd = ['Tnew'] hook_add = ''' let g:neoterm_autoinsert = 1 let g:neoterm_autoscroll = 1 let g:neoterm_default_mod = 'botright' let g:neoterm_size = 10 '''
vim-test だと、 strategy
と呼ばれるものでテスト実行に何を使用するか選ぶことができる。
色々試した結果、 kassio/neoterm が良さそうだったのでこれを使用中。
見え方とか変わるくらいやから正直これはなんでもいいと思う。
何が選べるかは vim-test/vim-test: strategies を参照。
Deno test 構成
Deno のテストでは組み込みの Deno.test
関数があるのでそれが使用できる。
基本的に実装が mod.ts
に記載してあるとすると、テストは mod_test.ts
に記載するっぽい。
(後ろに _test
をつける。)
かんたんに例を書くとこんな感じ。
- mod.ts
export const getTrue = (): boolean => { return true; }; export const add = (x: number, y: number): number => { return x + y; };
- mod_test.ts
import { assert, assertEquals, } from "https://deno.land/std@0.95.0/testing/asserts.ts"; import { add, getTrue } from "./mod.ts"; Deno.test("getTrue test", () => { assert(getTrue()); }); Deno.test("add test", () => { const expected = 2; const actual = add(1, 1); assertEquals(actual, expected); });
mod_test.ts
を開いて、 Deno.test("getTrue")
の付近にカーソルがある状態で <space>tn
を押下すると、以下のように getTrue
のみのテストが実行される。
<space>tf
を押下すると、以下のように mod_test.ts
のすべてのテストが実行される。
べんり。
参考
Thanks for reading! Read other posts?