bundle exec ruby에서 cannot load such file - test/unit (LoadError)가되는 문제

3039 단어 bundler루비

이 기사에 대하여



sidekiq를 조사하는 동안 빠졌습니다. sidekiq 자체는 관계없지만 ruby의 기본적인 지식이 적기 때문에, 「test/unit 자체는 ruby에 동고되고 있지 않나?」라든지 상상하면서 몇 시간이나 소비했기 때문에 메모로 남긴다.

결론


  • Gemfilegem 'test-unit' 쓰기
  • 참고 → htps : // 기주 b. 코 m / rs 페c

  • 현상


    $ bundle exec ruby test/test_example.rb
    

    결과
    test/test_example.rb:1:in `require': cannot load such file -- test/unit (LoadError)
        from test/test_example.rb:1:in `<main>'
    

    대상 루비 소스

    test/test_example.rb
    require 'test/unit'
    require_relative '../lib/example/example'
    
    class TestExample < Test::Unit::TestCase
      def test_greeting
        example = Example.new
        assert_equal 'Hello World', example.say
      end
    end
    

    Gemfile
    # frozen_string_literal: true
    
    source "https://rubygems.org"
    
    git_source(:github) {|repo_name| "https://github.com/#{repo_name}"}
    
    gem 'sidekiq', '5.1.1'
    

    원인


    bundle exec ruby 경유로 ruby를 실행하면, 기본적으로는 bundle install 로 인스톨 된 gem만을 참조 가능하게 된다. 따라서, require "test/unit" 에 필요한 test-unit 가 인스톨 되어 있지 않은 상태에서는 참조 불가능해 cannot load such file 가 된다.

    빠진 이유


  • 원래 RubyMine에서 프로젝트 구성을 만드는 연습을 했기 때문에 잘라내는데 시간 걸렸다
  • ...
  • 원래 지식 부족

  • 대응 방법


    bundle install --path vendor/bundle 에 gem Gemfile 쓰기
    # frozen_string_literal: true
    
    source "https://rubygems.org"
    
    git_source(:github) {|repo_name| "https://github.com/#{repo_name}"}
    
    gem 'sidekiq', '5.1.1'
    # bundler 経由で実行するので test-unit も必要
    # https://github.com/rspec/rspec-rails/issues/1273
    gem 'test-unit'
    

    좋은 웹페이지 즐겨찾기