Как определить, выполняется ли файл rspec как часть набора тестов - PullRequest
0 голосов
/ 27 февраля 2019

Как определить, запускается ли файл как часть набора тестов или сам по себе, из файла спецификации.Если он запускается сам по себе, я хочу подробный вывод, но если он является одним файлом из множества, то я хочу подавить вывод.

Например, если файл 'spec / models / my_model_spec.rb 'Я хочу сказать разницу между

rspec spec

и

rspec spec/models/my_model_spec.rb

1 Ответ

0 голосов
/ 28 февраля 2019

Я нашел это закомментировано в моем spec_helper.rb файле:

# Many RSpec users commonly either run the entire suite or an individual
# file, and it's useful to allow more verbose output when running an
# individual spec file.
if config.files_to_run.one?
  # Use the documentation formatter for detailed output,
  # unless a formatter has already been configured
  # (e.g. via a command-line flag).
  config.default_formatter = "doc"
end

Перемещение в блок RSpec.configure do |config| дало результаты, которые вы ищете.

РЕДАКТИРОВАТЬ

RSpec предоставляет четыре различных форматера вывода: прогресс, документация, HTML и JSON.Последние два говорят сами за себя.Первый, progress, является форматером по умолчанию.Он печатает точки, отображающие ход выполнения теста.Зеленые точки означают успешный тестовый запуск.

Другой форматер, документация, использует описания describe, context и it для отображения результатов теста.Итак, с учетом этой структуры RSpec:

describe Stack do
  describe '#push' do
    context 'when the stack is empty' do
      it 'increases the size of the stack by 1'
    end
    context 'when the stack is full' do
      it 'throws a stack overflow exception'
      it 'does not increase the size of the stack'
    end
  end
end

Форматер Документации выведет следующее:

Stack
  #push
    when the stack is empty
      increases the size of the stack by 1
    when the stack is full
      throws a stack overflow exception
      does not increase the size of the stack

Вы можете опробовать различные форматеры в командной строке, например:

rspec --format progress
rspec --format doc (or documentation)
rspec --format html
rspec --format json

Код конфигурации в spec_helper выше позволяет вам изменить default_formatter для ситуаций, когда вы запускаете только один файл.Вы всегда можете переопределить форматер по умолчанию, указав в командной строке другой.

Комментарии к исходному коду RSpec помогли мне ответить на этот вопрос: https://github.com/rspec/rspec-core/blob/7b6b9c3f2e2878213f97d6fc9e9eb23c323cfe1c/lib/rspec/core/formatters.rb

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...