LoginSignup
0
1

More than 5 years have passed since last update.

minitestの依存関係(?)問題をbundlerで解決する

Last updated at Posted at 2018-11-09

プロを目指す人のためのRuby入門の第3章のminitestのところで、以下のようなテストクラスを用意するところがあります。

# fizz_buzz_test.rb

require 'minitest/autorun'

class FizzBuzzTest < Minitest::Test
    def test_fizz_buzz
        assert_equal'1', fizz_buzz(1)
        assert_equal'2', fizz_buzz(2)
        assert_equal'Fizz', fizz_buzz(3)
    end
end

環境によっては以下のようなエラーに遭遇する場合があります。


k-3:lib k$ ruby fizz_buzz_test.rb
/usr/local/Cellar/ruby/2.4.1_1/lib/ruby/2.4.0/rubygems/specification.rb:2291:in `raise_if_conflicts': Unable to activate railties-5.1.6, because activesupport-5.2.1 conflicts with activesupport (= 5.1.6) (Gem::ConflictError)
        from /usr/local/Cellar/ruby/2.4.1_1/lib/ruby/2.4.0/rubygems/specification.rb:1411:in `activate'
        from /usr/local/Cellar/ruby/2.4.1_1/lib/ruby/2.4.0/rubygems.rb:220:in `rescue in try_activate'
        from /usr/local/Cellar/ruby/2.4.1_1/lib/ruby/2.4.0/rubygems.rb:213:in `try_activate'
        from /usr/local/Cellar/ruby/2.4.1_1/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:126:in `rescue in require'
        from /usr/local/Cellar/ruby/2.4.1_1/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:40:in `require'
        from /usr/local/lib/ruby/gems/2.4.0/gems/railties-5.1.6/lib/minitest/rails_plugin.rb:2:in `<top (required)>'
        from /usr/local/Cellar/ruby/2.4.1_1/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /usr/local/Cellar/ruby/2.4.1_1/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /usr/local/lib/ruby/gems/2.4.0/gems/minitest-5.11.3/lib/minitest.rb:98:in `block in load_plugins'
        from /usr/local/lib/ruby/gems/2.4.0/gems/minitest-5.11.3/lib/minitest.rb:92:in `each'
        from /usr/local/lib/ruby/gems/2.4.0/gems/minitest-5.11.3/lib/minitest.rb:92:in `load_plugins'
        from /usr/local/lib/ruby/gems/2.4.0/gems/minitest-5.11.3/lib/minitest.rb:121:in `run'
        from /usr/local/lib/ruby/gems/2.4.0/gems/minitest-5.11.3/lib/minitest.rb:63:in `block in autorun'

これで解決できます!(本質的な解決ではない)

bundlerを使うことで、Gemfileで指定したバージョンのminitestを実行できる。


gem install bundler
bundle init

Gemfileが作られるので、Gemfileに追記します。


# Edit Gemfile
gem 'minitest'

bundle install
bundle exec ruby fizz_buzz_test.rb
0
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1