thoughtbot / appraisal

A Ruby library for testing your library against different versions of dependencies.
https://thoughtbot.com
MIT License
1.26k stars 107 forks source link

Could not detect the correct version minitest when run test with rake #139

Closed zw963 closed 6 years ago

zw963 commented 6 years ago

https://github.com/zw963/delayed_worker/tree/feature/add_appraisals_support

this is my example project, when run bundle exec appraisal 4.0 rake test, got following error message:

>> BUNDLE_GEMFILE=/home/public/Dropbox/others/Project/delayed_worker/gemfiles/4.0.gemfile bundle exec rake test
/home/zw963/.rvm/gems/ruby-2.3.4@global/gems/bundler-1.16.1/lib/bundler/runtime.rb:313:in `check_for_activated_spec!': You have already activated minitest 5.11.3, but your Gemfile requires minitest 4.7.5. Prepending `bundle exec` to your command may solve this. (Gem::LoadError)
        from /home/zw963/.rvm/gems/ruby-2.3.4@global/gems/bundler-1.16.1/lib/bundler/runtime.rb:31:in `block in setup'
        from /home/zw963/.rvm/rubies/ruby-2.3.4/lib/ruby/2.3.0/forwardable.rb:204:in `each'
        from /home/zw963/.rvm/rubies/ruby-2.3.4/lib/ruby/2.3.0/forwardable.rb:204:in `each'
        from /home/zw963/.rvm/gems/ruby-2.3.4@global/gems/bundler-1.16.1/lib/bundler/runtime.rb:26:in `map'
        from /home/zw963/.rvm/gems/ruby-2.3.4@global/gems/bundler-1.16.1/lib/bundler/runtime.rb:26:in `setup'
        from /home/zw963/.rvm/gems/ruby-2.3.4@global/gems/bundler-1.16.1/lib/bundler.rb:107:in `setup'
        from /home/zw963/.rvm/gems/ruby-2.3.4@global/gems/bundler-1.16.1/lib/bundler/setup.rb:10:in `<top (required)>'
        from /home/zw963/.rvm/rubies/ruby-2.3.4/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /home/zw963/.rvm/rubies/ruby-2.3.4/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
rake aborted!
Command failed with status (1)
/home/zw963/.rvm/gems/ruby-2.3.4@delayed_worker/gems/rake-12.3.1/exe/rake:27:in `<top (required)>'
/home/zw963/.rvm/gems/ruby-2.3.4@delayed_worker/bin/ruby_executable_hooks:15:in `eval'
/home/zw963/.rvm/gems/ruby-2.3.4@delayed_worker/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => test
(See full trace by running task with --trace)

Except 4.0, others version (4.1, 4.2, 5.0, 5.0) all worked.

Thanks

zw963 commented 6 years ago

Hi, is there anyone maintain this project ? thanks

nickcharlton commented 6 years ago

I had a look at your branch and I'm seeing this on all other Rubies and in just running bundle exec rake.

If I run rake, I'm getting the following:

WARN: Unresolved specs during Gem::Specification.reset:
      i18n (~> 0.7)
      tzinfo (~> 1.1)
      concurrent-ruby (>= 1.0.2, ~> 1.0)
      rack (~> 2.0)
      rack-test (>= 0.6.3)
      rails-html-sanitizer (>= 1.0.2, >= 1.0.3, ~> 1.0)
      rails-dom-testing (~> 2.0)
      builder (~> 3.1)
      erubi (~> 1.4)
      thor (< 2.0, >= 0.18.1)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.

File does not exist: active_record

I think this is because you're not including all required gems inside the default .gemspec. Typically, you'd use the Appraisals file to indicate differences from the default set (for testing purposes).

I'd recommend including all of the gems you need to run the tests using a normal rake inside delayed_worked.gemspec, as this will help isolate whether or not this issue is related to appraisal.

zw963 commented 6 years ago

@nickcharlton , sorry for confusing, I have fix that AR error.

But, this issue still exist for 4.0, others is OK, please try again.

Thanks

zw963 commented 6 years ago

@nickcharlton , if you see my master branch, you will see the only difference is master is not gemfiles/4.0.gemfile, others version is work very well.

nickcharlton commented 6 years ago

If I run any appraisal commands, I'm getting the following:

% be appraisal 4.2 rake
>> BUNDLE_GEMFILE=/Users/nickcharlton/Desktop/delayed_worker/gemfiles/4.2.gemfile bundle exec rake
/Users/nickcharlton/.rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/specification.rb:2288:in `raise_if_conflicts': Unable to activate railties-5.1.4, because activesupport-5.2.0 conflicts with activesupport (= 5.1.4) (Gem::ConflictError)
        from /Users/nickcharlton/.rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/specification.rb:1408:in `activate'
        from /Users/nickcharlton/.rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems.rb:220:in `rescue in try_activate'
        from /Users/nickcharlton/.rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems.rb:213:in `try_activate'
        from /Users/nickcharlton/.rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:126:in `rescue in require'
        from /Users/nickcharlton/.rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:40:in `require'
        from /Users/nickcharlton/.gem/ruby/2.4.0/gems/railties-5.2.0.beta2/lib/minitest/rails_plugin.rb:4:in `<top (required)>'
        from /Users/nickcharlton/.rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /Users/nickcharlton/.rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /Users/nickcharlton/.gem/ruby/2.4.0/gems/minitest-5.11.3/lib/minitest.rb:98:in `block in load_plugins'
        from /Users/nickcharlton/.gem/ruby/2.4.0/gems/minitest-5.11.3/lib/minitest.rb:92:in `each'
        from /Users/nickcharlton/.gem/ruby/2.4.0/gems/minitest-5.11.3/lib/minitest.rb:92:in `load_plugins'
        from /Users/nickcharlton/.gem/ruby/2.4.0/gems/minitest-5.11.3/lib/minitest/pride.rb:3:in `<top (required)>'
        from /Users/nickcharlton/.rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /Users/nickcharlton/.rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
rake aborted!
zw963 commented 6 years ago

I found it worked for me now.

 ╰─ $ 130  bundle exec appraisal rake
>> BUNDLE_GEMFILE=/home/zw963/Dropbox/others/Project/delayed_worker/gemfiles/4.1.gemfile bundle exec rake
Run options: --seed 34738

# Running:

2018-04-27T15:00:32.927Z 26306 TID-gr8um53u4 INFO: simple delayed worker was start!
2018-04-27T15:00:32.927Z 26306 TID-gr8um53u4 INFO: simple delayed worker was finished!
.2018-04-27T15:00:32.938Z 26306 TID-gr8um53u4 INFO: change text value use params was start!
2018-04-27T15:00:32.939Z 26306 TID-gr8um53u4 INFO: change text value use params was finished!
.2018-04-27T15:00:32.941Z 26306 TID-gr8um53u4 INFO: change text value was start!
2018-04-27T15:00:32.941Z 26306 TID-gr8um53u4 INFO: change text value was finished!
.2018-04-27T15:00:32.943Z 26306 TID-gr8um53u4 INFO: change text value use params in controller was start!
2018-04-27T15:00:32.944Z 26306 TID-gr8um53u4 INFO: change text value use params in controller was finished!
.2018-04-27T15:00:32.945Z 26306 TID-gr8um53u4 INFO: simple delayed worker was start!
2018-04-27T15:00:32.945Z 26306 TID-gr8um53u4 INFO: simple delayed worker was finished!
.

Fabulous run in 0.019823s, 252.2340 runs/s, 1513.4041 assertions/s.

5 runs, 30 assertions, 0 failures, 0 errors, 0 skips
>> BUNDLE_GEMFILE=/home/zw963/Dropbox/others/Project/delayed_worker/gemfiles/4.2.gemfile bundle exec rake
WARNING: Nokogiri was built against LibXML version 2.9.1, but has dynamically loaded 2.9.4
Run options: --seed 57089

# Running:

2018-04-27T15:00:34.240Z 26323 TID-grterx31k INFO: simple delayed worker was start!
2018-04-27T15:00:34.240Z 26323 TID-grterx31k INFO: simple delayed worker was finished!
.2018-04-27T15:00:34.249Z 26323 TID-grterx31k INFO: change text value use params in controller was start!
2018-04-27T15:00:34.252Z 26323 TID-grterx31k INFO: change text value use params in controller was finished!
.2018-04-27T15:00:34.254Z 26323 TID-grterx31k INFO: change text value was start!
2018-04-27T15:00:34.254Z 26323 TID-grterx31k INFO: change text value was finished!
.2018-04-27T15:00:34.256Z 26323 TID-grterx31k INFO: change text value use params was start!
2018-04-27T15:00:34.256Z 26323 TID-grterx31k INFO: change text value use params was finished!
.2018-04-27T15:00:34.257Z 26323 TID-grterx31k INFO: simple delayed worker was start!
2018-04-27T15:00:34.257Z 26323 TID-grterx31k INFO: simple delayed worker was finished!
.

Fabulous run in 0.018053s, 276.9598 runs/s, 1661.7587 assertions/s.

5 runs, 30 assertions, 0 failures, 0 errors, 0 skips
>> BUNDLE_GEMFILE=/home/zw963/Dropbox/others/Project/delayed_worker/gemfiles/5.0.gemfile bundle exec rake
Run options: --seed 64616

# Running:

/home/zw963/Dropbox/others/Project/delayed_worker/lib/delayed_worker/logger.rb:8: warning: instance variable @logger not initialized
2018-04-27T15:00:35.591Z 26340 TID-govn0nq98 INFO: change text value use params in controller was start!
2018-04-27T15:00:35.593Z 26340 TID-govn0nq98 INFO: change text value use params in controller was finished!
.2018-04-27T15:00:35.594Z 26340 TID-govn0nq98 INFO: change text value was start!
2018-04-27T15:00:35.595Z 26340 TID-govn0nq98 INFO: change text value was finished!
.2018-04-27T15:00:35.595Z 26340 TID-govn0nq98 INFO: simple delayed worker was start!
2018-04-27T15:00:35.595Z 26340 TID-govn0nq98 INFO: simple delayed worker was finished!
.2018-04-27T15:00:35.596Z 26340 TID-govn0nq98 INFO: simple delayed worker was start!
2018-04-27T15:00:35.596Z 26340 TID-govn0nq98 INFO: simple delayed worker was finished!
.2018-04-27T15:00:35.597Z 26340 TID-govn0nq98 INFO: change text value use params was start!
2018-04-27T15:00:35.597Z 26340 TID-govn0nq98 INFO: change text value use params was finished!
.

Fabulous run in 0.011353s, 440.4159 runs/s, 2642.4957 assertions/s.

5 runs, 30 assertions, 0 failures, 0 errors, 0 skips
>> BUNDLE_GEMFILE=/home/zw963/Dropbox/others/Project/delayed_worker/gemfiles/5.1.gemfile bundle exec rake
Run options: --seed 30231

# Running:

/home/zw963/Dropbox/others/Project/delayed_worker/lib/delayed_worker/logger.rb:8: warning: instance variable @logger not initialized
2018-04-27T15:00:36.960Z 26357 TID-gncnzqylk INFO: change text value was start!
2018-04-27T15:00:36.960Z 26357 TID-gncnzqylk INFO: change text value was finished!
.2018-04-27T15:00:36.962Z 26357 TID-gncnzqylk INFO: change text value use params was start!
2018-04-27T15:00:36.963Z 26357 TID-gncnzqylk INFO: change text value use params was finished!
.2018-04-27T15:00:36.964Z 26357 TID-gncnzqylk INFO: change text value use params in controller was start!
2018-04-27T15:00:36.966Z 26357 TID-gncnzqylk INFO: change text value use params in controller was finished!
.2018-04-27T15:00:36.967Z 26357 TID-gncnzqylk INFO: simple delayed worker was start!
2018-04-27T15:00:36.967Z 26357 TID-gncnzqylk INFO: simple delayed worker was finished!
.2018-04-27T15:00:36.968Z 26357 TID-gncnzqylk INFO: simple delayed worker was start!
2018-04-27T15:00:36.968Z 26357 TID-gncnzqylk INFO: simple delayed worker was finished!
.

Fabulous run in 0.014626s, 341.8646 runs/s, 2051.1874 assertions/s.

5 runs, 30 assertions, 0 failures, 0 errors, 0 skips
nickcharlton commented 6 years ago

Great! I'm glad you figured this out. I'm going to close this for now.