我在我的項目中使用standalone autotest以及minitest。在我的一個項目中,我有一個文件(validation.rb
),它將文檔驗證爲不同的內部格式級別。 (級別2文檔具有比級別1文檔更多的功能。)將多個測試類映射到同一個文件進行自動測試
測試特定級別的驗證需要反覆加載已知有效的文檔,細微地突變它,然後確保它已損壞。總之:
class TestValidation < MiniTest::Unit::TestCase
def setup
@l1 = Document.load(L1DOC)
end
def test_valid
assert @l1.valid_level_1?
end
def test_unbalanced_data
@l1.instance_eval{ @tracks[0].data.pop }
refute @l1.valid_level_1?, "Validation must ensure that all tracks have the same amount of data"
end
# many more tests for level 1 here
end
的問題是,自動測試(據我可以告訴)知道哪個測試基於測試類的名稱來運行。當validation.rb
更改時,TestValidation
將自動運行測試。
沒有自動測試,我會命名上述類TestL1Validation
,並創建一個新的類TestL2Validation
,它加載了一個不同的文檔。但是,這樣做會中斷自動測試,除非我將驗證分爲l1validation.rb
和l2validation.rb
。
如何命名我的文件或測試或設置我的測試,以便在單個源文件更改時自動測試將運行多個測試類?