Как только вы что-то require
сделаете, я думаю, что это довольно сложно отменить. Однако вы могли бы иметь отдельный набор тестов, которые всегда выполняются в отдельном экземпляре интерпретатора Ruby, и вызывать их как другую задачу rake
. Так что у вас может быть что-то вроде этого:
Rake::TestTask.new(:no_growl_test) do |t|
t.libs << 'lib'
t.pattern = 'test/compatibility/no_growl.rb'
end
Идея в том, что это будет работать в новой, "чистой" среде, в которой вы никогда не сможете загрузить Growl. Некоторые из других пользователей предложили способы заставить Rubygems не находить данный драгоценный камень, и это может быть даже возможно в Gem API.
В качестве альтернативы, используя JRuby, не так уж сложно создать несколько непересекающихся сред выполнения, но это, вероятно, излишне для вашей работы.