Насколько я знаю, RSpec не предоставляет инструменты для автоматического присваивания идентификаторов вашим тестовым примерам, но он предоставляет несколько механизмов для их использования после их использования.
Простейший является добавлять тематические идентификаторы тестов на it
первого параметра, как у вас в вопросе:
describe Fixnum do
it "should support + operator (TC001)" do
(5 + 8).should == 13
end
end
вы увидите тестовый случай идентификатор в многословных выходах из rspec
, и даже может фильтровать конкретный тест таким образом, что будет работать большую часть времени:
$ rspec -f d -e TC001 specs/test.rb
Run options: include {:full_description=>/TC001/}
Fixnum
should support + operator (TC001)
Finished in 0.00041 seconds
1 example, 0 failures
Если этого не достаточно для вас, то вы можете взять вещи дальше, используя параметры тестирования теги хэш, чтобы создать собственную схему маркировки и управляющие тесты :
describe Fixnum do
it "should support + operator", case_id: 'TC001' do
(5 + 8).should == 13
end
end
Это может быть отфильтрован следующим образом:
$ rspec -f d -t case_id:TC001 specs/test.rb
Run options: include {:case_id=>"TC001"}
Fixnum
should support + operator
Finished in 0.0004 seconds
1 example, 0 failures
Но теперь обратите внимание, что данные теги не появляется на выходе. Фактически он не появляется ни в одном из вариантов вывода, поставляемых с жемчужиной rspec
as-is. Тем не менее, вы можете получить к нему доступ в пользовательских форматировщиках RSpec и в другом коде, который контролирует поведение тестового набора. Таким образом, вы можете использовать это для создания пользовательских отчетов, таких как .csvs с ярлыками тестовых примеров и т. Д., Отслеживание тестовых случаев и переход/отказ в развитии случаев в базе данных и т. Д.
Когда 'rspec' сообщает об ошибке тестирования, а также сообщая название теста, он будет содержать номер строки, где начинается блок 'it', и он может быть вызван для запуска только этого теста, например 'rspec specs/test.rb: 57' (это тот же формат, что и вывод rspec). Я не уверен, что это будет адекватно для ваших нужд, это было полезно для меня. –
В принципе мне нужна краткая ссылка на любые тестовые примеры в наборе тестов, а не только на отказ. И номер строки всегда меняется при обновлении набора тестов. – ccy
Спецификации rspec -e TC001 также будут запускать эту спецификацию (если она находится в папке спецификаций) –