Ruby / Minitest: Как мне запустить #setup для всех тестов, кроме одного? - PullRequest
0 голосов
/ 26 октября 2018

У меня есть тестовый файл, который выглядит примерно так:

class ThingsTest < ActionDispatch::IntegrationTest
  def setup
    ...
  end

  # Test 1
  test 'it should do something' do
    ...
  end

  # Test 2
  test 'it should do something else' do
    ...
  end

  ...

  # Test 50
  test 'it should do another thing' do
    ...
  end
end

Для тестов с 1 по 49 я хочу запустить метод настройки. Однако для финального теста я этого не сделаю. Есть ли способ предотвратить запуск #setup для этого финального теста?

1 Ответ

0 голосов
/ 26 октября 2018

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

def my_setup
  ...
end

test 'test1' do
  my_setup
end

...

test 'test49' do
  my_setup
end

test 'test50' do
# no my_setup here
end

Вы также можете переключиться на rspec , где вы можете легко разделить контрольные примеры с describe s и context, например:

describe 'block1' do
  before do
  #setup here
  end

  it 'test1' do
  end

  ...
end

describe 'block2' do
  it 'test50' do
  end
end
...