溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Rake::TestTask 介紹

發(fā)布時間:2020-06-27 11:21:03 來源:網(wǎng)絡(luò) 閱讀:385 作者:OneAPM1 欄目:編程語言


李哲 — 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"

參考鏈接:

http://ruby-doc.org/stdlib-2.2.2/libdoc/rake/rdoc/Rake/TestTask.html

本文作者系OneAPM工程師陶炳哲 ,想閱讀更多好的技術(shù)文章,請訪問OneAPM官方技術(shù)博客。


向AI問一下細(xì)節(jié)

免責(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)容。

AI