Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

131026 kansai-emacs

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to comment

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. 終わりです

×