我寫了一個簡單的腳本,但我正在尋找更好的實現。在Vim腳本中找到測試名稱
這是我的理想場景。我坐在一個包含許多類似的測試,測試文件:
def test_cleans_number
number = PhoneNumber.new("(123) 456-7890").number
assert_equal "1234567890", number
end
def test_cleans_a_different_number
number = PhoneNumber.new("(987) 654-3210").number
assert_equal "", number
end
def test_cleans_number_with_dots
number = PhoneNumber.new("456.123.7890").number
assert_equal "4561237890", number
end
我寫這個Vim腳本,讓我穿上測試的定義行我的光標,它會運行一個測試僅測試:
function! RunNearestTest()
let line = getline('.')
let test_name = substitute(line, 'def ', "", "g")
exec ":!ruby " . @% . " -n " . test_name
endfunction
" run test runner
map <leader>T :call RunNearestTest()<cr>
如果腳本不明顯,我需要測試名稱才能專門運行該測試。在第一個例子中,測試名稱是test_cleans_number
。
正如我所說,這工作正常,但我想要做的是在測試的任何一行,它會知道跳轉到以前的def
,得到test_name
,然後運行執行。我認爲searchpair()
將是我的轉到這裏,但唉,我無法找到足夠的文件。
我很高興提供您可能需要的任何文件或附加內容,謝謝!
側欄:''m' /'] m'將移動到上一個/下一個方法定義 – 2014-10-27 23:33:27