Как использовать require_relative с тестом rspec?

У меня есть тест rspec, то есть описать и

я хочу добавить before :all а также before :each поведение

Я могу добавить его, поместив непосредственно в файл спецификации теста, т.е.

describe "test" do
  before :all do
    CONTINUE_SPEC= true
  end

  around :each do |example|
    if CONTINUE_SPEC
      CONTINUE_SPEC = false
      example.run
      CONTINUE_SPEC = true unless example.exception
    else
      example.skip
    end
  end
  ... actual tests...

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

require_relative '../../support/continue_test_if_passing'

я получил

Failure/Error:
  before :all do
    CONTINUE_SPEC= true
  end

NoMethodError:
  undefined method `before' for main:Object

1 ответ

Решение

Просто добавьте это к вашему spec_helper.rb в RSpec.configure блок:

RSpec.configure do |config|
  config.before :all do
    CONTINUE_SPEC= true
  end

  config.around :each do |example|
    if CONTINUE_SPEC
      CONTINUE_SPEC = false
      example.run
      CONTINUE_SPEC = true unless example.exception
    else
      example.skip
    end
  end

  # ...
end
Другие вопросы по тегам