我在我的项目中使用独立的 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
问题是自动测试(据我所知)根据测试类的名称知道要运行哪些测试。TestValidation
更改时将自动运行其测试validation.rb
。
如果没有自动测试,我会命名上面的类TestL1Validation
,并创建一个TestL2Validation
加载不同文档的新类。但是,这样做会破坏自动测试,除非我将验证分解为l1validation.rb
and l2validation.rb
。
如何命名我的文件或测试,或设置我的测试,以便在单个源文件更改时自动测试将运行多个测试类?