Как ввести глобальные параметры в тесты Minitest? - PullRequest
0 голосов
/ 18 мая 2018

Это мой тест:

require 'minitest/autorun'
class Foo < Minitest::Test
  def test_it
    // here
  end
end

Это мой Rakefile:

Rake::TestTask.new(:test) do |test|
  test.libs << 'lib' << 'test'
  test.pattern = 'test/**/test_*.rb'
  test.verbose = false
  test.warning = false
end

Я хочу иметь возможность передавать некоторый глобальный параметр конфигурации из Rakefile ввсе юнит-тесты.Единственный способ, который я нашел до сих пор, - через глобальную переменную из test__helper.rb.Но Рубокоп жалуется на глобальные переменные, и я с этим согласен.Есть ли какие-нибудь удобные для Minitest решения?

1 Ответ

0 голосов
/ 19 мая 2018

Самым простым и чистым решением, которое я могу придумать, является использование переменных ENV. (Документы)

Вы просто вызываете тесты с помощью:

SOME_VARIABLE=some_value rake test

И в мини-тесте вы просто делаете

ENV.fetch('SOME_VARIABLE', default_value)

Пока по умолчаниюнеобязательно (но рекомендуется, в противном случае вы получите ошибку, когда хотите запустить тесты без параметров).

Я думаю, что это самое чистое решение, потому что модульные тесты должны по существу всегда работать одинаково. only причина, по которой я могу придумать, где вы хотите изменить поведение модульных тестов, - это возможность (например, позволить серверу CI запускать спецификации, которые занимают больше времени, чем обычно, с другими настройками для капибары между различными машинами).и т.д.)

...