Я новичок в ruby, так что прости меня, если это просто или я неправильно понял терминологию.
У меня есть куча модульных тестов (на самом деле это интеграционные тесты для другого проекта, но они используют ruby test / unit), и все они включены из модуля, который устанавливает переменную экземпляра для объекта журнала. Когда я запускаю отдельные тесты, я бы хотел, чтобы log.level был отладочным, но когда я запускаю набор, я бы хотел, чтобы log.level был ошибкой. Возможно ли это сделать с помощью подхода, который я использую, или код должен быть реструктурирован?
Вот небольшой пример того, что у меня есть.
Модуль регистрации:
#!/usr/bin/env ruby
require 'logger'
module MyLog
def setup
@log = Logger.new(STDOUT)
@log.level = Logger::DEBUG
end
end
Тест:
#!/usr/bin/env ruby
require 'test/unit'
require 'mylog'
class Test1 < Test::Unit::TestCase
include MyLog
def test_something
@log.info("About to test something")
# Test goes here
@log.info("Done testing something")
end
end
Набор тестов, состоящий из всех тестов в его каталоге:
#!/usr/bin/env ruby
Dir.foreach(".") do |path|
if /it-.*\.rb/.match(File.basename(path))
require path
end
end