您好,登錄后才能下訂單哦!
李哲 — MAY 28, 2015
通常我們創(chuàng)建一個新的項目的時候,會建立一個test
或者spec
的文件夾來存放測試的文件,運行這些測試需要單獨的命令,比如在項目目錄下執(zhí)行rspec
.或者ruby test.rb
等等,這些測試的工具中大多也都提供了更方便的方式來運行這些測試,但是如果你喜歡用Rake
的話,那就有另外一個選擇Rake::TestTask
。
先上代碼:
require "rake/testtask" Rake::TestTask.new do |t| t.libs << "test" t.pattern = "test/*_test.rb" t.verbose = true end
將以上代碼保存或添加到項目目錄中的Rakefile
,然后在這個目錄下執(zhí)行rake test
,你就可以看到如下輸出(這里我用的測試框架是Minitest
):
/home/lizhe/.rvm/rubies/ruby-2.2.2/bin/ruby -I"lib:test" "/home/lizhe/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/rake/rake_test _loader.rb" "test/person_test.rb" Run options: --seed 535 # Running: . Finished in 0.000558s, 1793.5482 runs/s, 1793.5482 assertions/s. 1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
如果去掉最上面代碼中的t.verbose = true
的話:
require "rake/testtask" Rake::TestTask.new do |t| t.libs << "test" t.pattern = "test/*_test.rb" end
則輸出結(jié)果就不會顯示執(zhí)行的ruby
命令,如下:
Run options: --seed 17527 # Running: . Finished in 0.001629s, 613.9689 runs/s, 613.9689 assertions/s. 1 runs, 1 assertions, 0 failures, 0 errors, 0 skipss
這里再介紹一下Rake::TestTask
的配置選項:
libs
會被添加到$LOAD_PATH
中;
pattern
測試文件的名稱匹配,還有另外一個叫做test_files
,這兩個使用哪一個都可以,如果同時使用的話,會合并兩者;
verbose
輸出這個Rake::TestTask
執(zhí)行的具體Ruby命令;
options
指定給測試框架的參數(shù),類型為數(shù)組,也可以通過傳入TESTOPTS
命令行參數(shù)達(dá)到相同的目的;
ruby_opts
執(zhí)行ruby命令時的參數(shù),類型為數(shù)組,比如可以在指定為-rtesthelper
,避免每個測試文件重復(fù)require "test_helper"
;
name Rake Task
的名稱,默認(rèn)是test
;
還有一點,在我們執(zhí)行rake test
的時候,是可以傳入一些參數(shù)的,比如我執(zhí)行執(zhí)行test/dummy_test.rb
這個測試,那么就可以指定TEST參數(shù):
rake test TEST=test/dummy_test.rb
還可以通過TESTOPTS
給你使用的測試框架傳入?yún)?shù),比如Minitest
有-v和-p兩個參數(shù),那么就可以這樣傳進(jìn)去:
rake test TESTOPTS="-vp"
參考鏈接:
本文作者系OneAPM工程師陶炳哲 ,想閱讀更多好的技術(shù)文章,請訪問OneAPM官方技術(shù)博客。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。