在 Ruby track 上測試

了解如何在 Exercism 上測試你的 Ruby 練習。


執行測試

用以下指令執行測試:

$ ruby hamming_test.rb

只有第一個測試會被執行,其餘的都透過skip方法標記為略過。每通過一個測試,就刪除或註解掉下一個skip。

了解略過設定

skip方法會告訴測試套件不要執行某個測試。這通常用來避免執行尚未實作的功能的測試,讓你專注在目前正在處理的部分。

測試執行摘要會列出略過的測試數量。完成一個練習之前,你應該停用所有的略過設定。

自訂測試報告

如果你想看到顏色,可以用以下指令執行測試:

$ ruby hamming_test.rb -p

如果你想看到測試名稱,可以用以下指令執行測試:

$ ruby hamming_tests.rb -v

如果你只想執行一個測試,可以用正規表示式的比對方式指定單一測試或一組測試。

$ ruby hamming_tests.rb -n /empty/

你也可以合併使用這些選項。

停用所有略過設定

現在你已經學會如何挑選想執行的單一測試或測試群組,也許會想乾脆停用所有的略過設定。

快速但隨性的做法

利用 Ruby 的方法可以覆寫這項特性,只要加上這行程式碼:

def skip ; end

像這樣放進 Hamming 測試檔裡:

class HammingTest < Minitest::Test
  def skip ; end
  def test_identical_strands

這樣一來,所有的略過呼叫仍然會被求值,但會讓你的測試照常執行。

依然快速,但更簡潔

當然,每次都要逐一修改所有檔案實在很煩,所以你可以像我們開發這些練習時一樣:把 skip 的定義放進一個檔案,需要的時候再將它當作函式庫 require 進來。

我們建立了一個lib資料夾來放這些「輔助」用的東西,內容如下:

require 'minitest/autorun'
# You can use this to disable all skips in the current exercise by issuing the
# following command:
#     ruby -I../lib -rdisable_skip <filename_test.rb>

module Minitest
  class Test
    def skip(_msg='', _bt=caller)
    end
  end
end

如何使用它的說明就寫在那份檔案的註解裡,而那份檔案也已經是完整的內容。