Я использую автономный автотест в своих проектах вместе с 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
Проблема в том, что автотест (насколько я могу судить) знает, какие тесты запускать, основываясь на имени тестовых классов. * У 1011 * будут автоматически запускаться тесты при изменении validation.rb
.
Без автотеста я бы назвал указанный выше класс TestL1Validation
и создал бы новый класс TestL2Validation
, который загрузил другой документ. Однако это нарушает автотест, если только я не разбил свою проверку на l1validation.rb
и l2validation.rb
.
Как я могу назвать свои файлы или тесты или настроить свои тесты, чтобы автотест запускал несколько тестовых классов при изменении одного исходного файла?