2016-07-07 3 views
0

나는 녹 확장을 컴파일하는 루비 보석을 관리합니다. 대부분의 Linux 및 Windows 시스템에서 작동하지만 Mac에서는 빌드되지 않습니다. 문제는 번들/gem 설치 프로세스 중에 발생합니다.번들 설치로 확장 프로그램이 생성되는지 테스트합니다.

프로젝트의 테스트 스위트에 을 추가하고 보석 성공 테스트를 빌드하고 설치하는 방법이 필요합니다. 시스템에 로컬로 설치하지 않고 임시 디렉토리에 설치하는 것이 바람직합니다. 또한 테스트는 보석 설치시 링크 된 라이브러리 파일이 존재하는지 확인해야합니다.

당신이 질문에 대한 더 많은 컨텍스트를해야하는 경우가 여기에 크로스 플랫폼 보석 확장 건물 해결을위한 내 Github의 문제입니다 : 그래서 https://rubybench.org/을 우연히 발견 https://github.com/danielpclark/faster_path/issues/71

답변

0

을 그들은 임시 디렉토리로 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 

기본적으로 내가 필요한 것은 무엇입니까, 확장 기능을 확인하기위한 벤치 마크 부분을 변경해야합니다.

업데이트 : 이것은 테스트하기에 정말로 고통스러워지고 계획대로 작동하지 않습니다.