131026 kansai-emacs

1,073 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,073
On SlideShare
0
From Embeds
0
Number of Embeds
579
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

131026 kansai-emacs

  1. 1. Emacsとテスト
  2. 2. shiba_yu36
  3. 3. プログラムを書く時は テストが必須
  4. 4. Emacsでテストを 簡単に実行したい
  5. 5. 普通にテスト実行する (defun run-perl-test () "test実行します" (interactive) (compile (format "prove -v %s" (buffer-file-name (current-buffer)))))
  6. 6. デモ
  7. 7. 問題 • 1ファイルにテスト増えてくると全部実 行するの辛い • なんか絞れるんだったらやりたい
  8. 8. PerlでTest::Classのメソッド単位で実行する (defun run-perl-method-test () (interactive) (let ( (command compile-command) (test-method nil)) (save-excursion (when (or (re-search-backward "bsubs+([_[:alpha:]]+)s*:s*Test" nil t) (re-search-forward "bsubs+([_[:alpha:]]+)s*:s*Test" nil t)) (setq test-method (match-string 1)))) (if test-method (compile (format "cd %s; TEST_METHOD=%s perl -M'Project::Libs lib_dirs => [qw(modules/*/lib local/lib/perl5)]' %s" (replace-regexp-in-string "n+$" "" (shell-command-to-string "git rev-parse --show-cdup")) test-method (buffer-file-name (current-buffer)))) (compile (format "cd %s; perl -M'Project::Libs lib_dirs => [qw(modules/*/lib local/lib/ perl5)]' %s" (replace-regexp-in-string "n+$" "" (shell-command-to-string "git rev-parse --show-cdup")) (buffer-file-name (current-buffer)))))))
  9. 9. デモ
  10. 10. やっていること • emacsで現在ファイル名、Test::Class のメソッド名を取得 • proveのTEST_METHODを指定して compileで実行
  11. 11. やっていること • (buffer-file-name (current-buffer)) • 現在ファイルの絶対パス取る
  12. 12. やっていること • save-excursion + re-searchbackword + match-string • 現在状態をセーブした状態で正規表 現検索 • Test::Classのメソッド名とっている
  13. 13. やっていること • (compile ) • compileでコマンド実行 • quick-runとか使っても良い
  14. 14. その他の言語?? • たぶんrubyとか他でも正規表現でテス トの範囲を見つけられれば出来ます • 頑張ろう
  15. 15. 終わりです

×