2016-07-07 6 views
0

Rust拡張機能をコンパイルするRuby gemを維持しています。 LinuxやWindowsシステムの大半で動作しますが、Macでは構築されません。この問題は、バンドル/ gemのインストールプロセス中に発生します。バンドルインストールで拡張機能が作成されることをテストします

私は、プロジェクトのテストスイートにを追加して、宝石成功テストをビルドしてインストールする方法が必要です。システムにローカルにインストールするのではなく、一時ディレクトリにインストールすることをお勧めします。テストでは、gemのインストール時にリンクされたライブラリファイルが存在することも確認する必要があります。

あなたがここで問題のためのより多くのコンテキストが必要な場合は、クロスプラットフォームの宝石の延長建物を解決するための私のGitHubの問題である:https://github.com/danielpclark/faster_path/issues/71

答えて

0

だから私はhttps://rubybench.org/を偶然見つけ、彼らは一時ディレクトリとバンドラーのベンチマークを持っています。

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 

これは基本的に私が必要とすることですが、拡張機能を検証するためのベンチマーク部分を変更するだけです。

更新:これはテストに本当の苦痛になっており、計画どおりに動作していません。

関連する問題