2016-07-07 77 views
0

我維護編譯Rust擴展的Ruby gem。它適用於大多數Linux和Windows系統,但不能在Mac上構建。問題發生在bundle/gem安裝過程中。測試bundle安裝是否創建擴展

我需要一種方法來添加到項目的測試套件構建和安裝寶石成功測試。最好不要將它本地安裝到系統中,而是安裝到臨時目錄中。測試還應驗證在安裝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 

這基本上是做我所需要的,我只需要改變驗證擴展建設的基準部分。

更新:這成爲一個真正的痛苦測試,並沒有按計劃工作。