2016-07-07 76 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 

这基本上是做我所需要的,我只需要改变验证扩展建设的基准部分。

更新:这成为一个真正的痛苦测试,并没有按计划工作。