Проверьте, что установка пакета создает расширение
Я поддерживаю Ruby gem, который составляет расширение Rust. Он работает на большинстве систем Linux и Windows, но не на компьютерах Mac. Проблема возникает во время процесса установки пакета / гема.
Мне нужен способ добавить в набор тестов проекта тест на успешность сборки и установки gem. Желательно не устанавливать его локально в систему, а во временный каталог. Тесты также должны проверить, существует ли связанный файл библиотеки после установки gem.
Если вам нужно больше контекста для вопроса, вот моя проблема Github для решения кросс-платформенного расширения гемов: https://github.com/danielpclark/faster_path/issues/71
1 ответ
Поэтому я наткнулся на https://rubybench.org/ и у них есть тест для Bundler с временным каталогом:
require_relative 'support/benchmark_bundler.rb'
require 'bundler/cli'
noop_gem = Pathname(__FILE__).expand_path + '../gems/noop-gem'
Dir.mktmpdir do |dir|
Dir.chdir(dir) do
File.write('Gemfile', <<-GEMFILE)
source 'https://rubygems.org'
gem 'rails'
gem 'noop-gem', path: '#{noop_gem}'
GEMFILE
system("bundle install --quiet")
Benchmark.do_benchmark('bundle exec gem') do
system("bundle exec noop-gem")
end
end
end
Это в основном делает то, что мне нужно, мне просто нужно изменить часть теста для проверки построения расширений.
ОБНОВЛЕНИЕ: Это становится настоящей болью для тестирования и работает не так, как планировалось.