Project

General

Profile

Bug #1085

Got the error message, after run 'gem install --test'.

Added by kouji (Kouji Takao) over 11 years ago. Updated over 9 years ago.

Status:
Closed
Priority:
Normal
Target version:
ruby -v:
1.9.1p5000 (2009-01-31 trunk 21924) [i386-darwin9.6.0]
Backport:
[ruby-core:21714]

Description

=begin
Hi, Ryan.

I use ruby 1.9.1p5000 (2009-01-31 trunk 21924) [i386-darwin9.6.0].
I got the error message, after I run 'gem install --test '.

ERROR: While executing gem ... (NoMethodError)
undefined method `passed?' for #MiniTest::Unit:0x77d1fc

The source of the problem is called MiniTest::Unit#passed? at
lib/rubygems/commands/install_command.rb:136.

The attached patch will fix the problem.

Index: unit.rb
===================================================================
--- unit.rb (revision 21924)
+++ unit.rb (working copy)
@@ -429,6 +429,10 @@
[@test_count, @assertion_count]
end

  • def passed?
  • return (failures + errors) == 0
  • end + class TestCase attr_reader :name =end
#1

Updated by ko1 (Koichi Sasada) over 11 years ago

  • Assignee set to zenspider (Ryan Davis)
  • ruby -v set to 1.9.1p5000 (2009-01-31 trunk 21924) [i386-darwin9.6.0]

=begin

=end

#2

Updated by zenspider (Ryan Davis) over 11 years ago

=begin

On Feb 1, 2009, at 05:26 , Takao Kouji wrote:

Hi, Ryan.

I use ruby 1.9.1p5000 (2009-01-31 trunk 21924) [i386-darwin9.6.0].
I got the error message, after I run 'gem install --test '.

ERROR: While executing gem ... (NoMethodError)
undefined method `passed?' for #MiniTest::Unit:0x77d1fc

The source of the problem is called MiniTest::Unit#passed? at
lib/rubygems/commands/install_command.rb:136.

The attached patch will fix the problem.

Index: unit.rb

--- unit.rb (revision 21924)
+++ unit.rb (working copy)
@@ -429,6 +429,10 @@
[@test_count, @assertion_count]
end

  • def passed?
  • return (failures + errors) == 0
  • end

this is a rubygems issue that we'll fix on that side instead.

=end

#3

Updated by naruse (Yui NARUSE) almost 11 years ago

  • Category set to lib
  • Status changed from Open to Assigned
  • Assignee changed from zenspider (Ryan Davis) to drbrain (Eric Hodel)
  • Priority changed from 3 to 6
  • Target version set to 1.9.2

=begin

=end

#4

Updated by drbrain (Eric Hodel) over 10 years ago

  • Assignee changed from drbrain (Eric Hodel) to zenspider (Ryan Davis)

=begin
This is a minitest issue.
=end

#5

Updated by mame (Yusuke Endoh) over 10 years ago

=begin
Hi, Eric Hodel

Couldn't you fix this on rubygems side?
I hope this will be fixed ASAP.

Well, he is pigheaded...

diff --git a/lib/rubygems/validator.rb b/lib/rubygems/validator.rb
index 38ee62f..26303df 100644
--- a/lib/rubygems/validator.rb
+++ b/lib/rubygems/validator.rb
@@ -234,6 +234,13 @@ class Gem::Validator
result = MiniTest::Unit.new
result.run

  • # workaround for minitest
  • class << result
  • def passed?
  • return (failures + errors) == 0
  • end
  • end + result ensure Dir.chdir(start_dir)

--
Yusuke Endoh mame@tsg.ne.jp
=end

#6

Updated by drbrain (Eric Hodel) over 10 years ago

=begin
On Apr 13, 2010, at 10:11, Yusuke Endoh wrote:

Issue #1085 has been updated by Yusuke Endoh.

Hi, Eric Hodel

Couldn't you fix this on rubygems side?
I hope this will be fixed ASAP.

I think so. I will be dedicating time later this week to RubyGems and 1.9.2.

Well, he is pigheaded...

Maybe I can publicly shame him into fixing this correctly instead of via RubyGems:

17:15 me: hahaha
17:15 me: read ruby-core:29499
17:16 Ryan: hah
17:17 Ryan: Ryan Davis disconnected

=end

#7

Updated by zenspider (Ryan Davis) over 10 years ago

=begin

On Apr 13, 2010, at 17:19 , Eric Hodel wrote:

On Apr 13, 2010, at 10:11, Yusuke Endoh wrote:

Issue #1085 has been updated by Yusuke Endoh.

Hi, Eric Hodel

Couldn't you fix this on rubygems side?
I hope this will be fixed ASAP.

I think so. I will be dedicating time later this week to RubyGems and 1.9.2.

Well, he is pigheaded...

Maybe I can publicly shame him into fixing this correctly instead of via RubyGems:

17:15 me: hahaha
17:15 me: read ruby-core:29499
17:16 Ryan: hah
17:17 Ryan: Ryan Davis disconnected

All pigheadedness aside, why is it is a bug that rubygems doesn't work with minitest when it isn't a bug that it doesn't work with bacon, rspec, and every other test framework under the sun? Since ruby doesn't have a real standard project layout and a unified testing setup (like the way perl does), it isn't reasonable to expect that rubygems' "--test" flag be able to work with project and their tests/specs/stories/whatever-we-come-up-with-nexts.

=end

#8

Updated by mame (Yusuke Endoh) over 10 years ago

=begin
Hi,

2010/4/19 Ryan Davis ryand-ruby@zenspider.com:

All pigheadedness aside, why is it is a bug that rubygems doesn't work with minitest when it isn't a bug that it doesn't work with bacon, rspec, and every other test framework under the sun? Since ruby doesn't have a real standard project layout and a unified testing setup (like the way perl does), it isn't reasonable to expect that rubygems' "--test" flag be able to work with project and their tests/specs/stories/whatever-we-come-up-with-nexts.

I guess that rubygems' "--test" flag was created in consideration of
test/unit. And actually, the old test/unit had provided "passed?"
before it was replaced with minitest.

I can understand you if test/unit compat layer of minitest provides
"passed?". If it does so, I think this is a fault of rubygems that
uses minitest but not test/unit.

--
Yusuke ENDOH mame@tsg.ne.jp

=end

#9

Updated by drbrain (Eric Hodel) over 10 years ago

=begin
On Apr 19, 2010, at 10:54, Yusuke ENDOH wrote:

2010/4/19 Ryan Davis ryand-ruby@zenspider.com:

All pigheadedness aside, why is it is a bug that rubygems doesn't work with minitest when it isn't a bug that it doesn't work with bacon, rspec, and every other test framework under the sun? Since ruby doesn't have a real standard project layout and a unified testing setup (like the way perl does), it isn't reasonable to expect that rubygems' "--test" flag be able to work with project and their tests/specs/stories/whatever-we-come-up-with-nexts.

I guess that rubygems' "--test" flag was created in consideration of
test/unit. And actually, the old test/unit had provided "passed?"
before it was replaced with minitest.

I can understand you if test/unit compat layer of minitest provides
"passed?". If it does so, I think this is a fault of rubygems that
uses minitest but not test/unit.

I think it would be better to remove --test from RubyGems since it can't work everywhere.

If the community finds it important they can implement it using a gem plugin. It is too hard for me to make RubyGems support every possible test library and it is too hard to get every possible test library to support a common API.

=end

#10

Updated by mame (Yusuke Endoh) over 10 years ago

  • Assignee changed from zenspider (Ryan Davis) to drbrain (Eric Hodel)

=begin
Hi,

I think it would be better to remove --test from RubyGems since it can't work everywhere.

You are the maintainer.
Maintainer should respect compatibility and opinions of others,
but can finally make decision, I think.

I think it is best for test/unit to provide passed? again, but
if it is impossible, removing --test is better than current.

Eric, please make decision.

--
Yusuke Endoh mame@tsg.ne.jp
=end

#11

Updated by mame (Yusuke Endoh) over 10 years ago

=begin
Hi, Eric

Any update here?

--
Yusuke Endoh mame@tsg.ne.jp
=end

#12

Updated by luislavena (Luis Lavena) over 10 years ago

=begin
On Mon, May 10, 2010 at 11:40 AM, Yusuke Endoh redmine@ruby-lang.org wrote:

Issue #1085 has been updated by Yusuke Endoh.

Hi, Eric

Any update here?

AFAIk --test option has and will be deprecated in newer version of
RubyGems since every package uses different testing framework and
tools, turning the --test option useless.
--
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry

=end

#13

Updated by mame (Yusuke Endoh) over 10 years ago

=begin
Hi, Eric

Any update here?

This is the second reminder for this ticket (though I send you
many reminders).
There is a Japanese proverb: Hotoke no kao mo sando made.

I'll close this ticket by committing this patch unless you show
your solution within three days:

diff --git a/lib/rubygems/install_update_options.rb b/lib/rubygems/install_update_options.rb
index c3fa2d5..4e7f9e7 100644
--- a/lib/rubygems/install_update_options.rb
+++ b/lib/rubygems/install_update_options.rb
@@ -59,8 +59,7 @@ module Gem::InstallUpdateOptions
end

  add_option(:"Install/Update", '-t', '--[no-]test',
  • 'Run unit tests prior to installation') do |value, options|
  • options[:test] = value
  •           'Ignored; just for compatiblity') do |value, options|
    

    end

    add_option(:"Install/Update", '-w', '--[no-]wrappers',
    @@ -110,7 +109,7 @@ module Gem::InstallUpdateOptions

    Default options for the gem install command.

    def install_update_defaults_str

  • '--rdoc --no-force --no-test --wrappers'

  • '--rdoc --no-force --wrappers'
    end

end
diff --git a/test/rubygems/test_gem_command_manager.rb b/test/rubygems/test_gem_command_manager.rb
index c81cc59..815798a 100644
--- a/test/rubygems/test_gem_command_manager.rb
+++ b/test/rubygems/test_gem_command_manager.rb
@@ -67,7 +67,6 @@ class TestGemCommandManager < RubyGemTestCase
check_options = nil
@command_manager.process_args(
"install --force --test --local --rdoc --install-dir . --version 3.0 --no-wrapper --bindir . ")

  • assert_equal true, check_options[:test] assert_equal true, check_options[:generate_rdoc] assert_equal true, check_options[:force] assert_equal :local, check_options[:domain] @@ -197,7 +196,6 @@ class TestGemCommandManager < RubyGemTestCase #check settings check_options = nil @command_manager.process_args("update --force --test --rdoc --install-dir .")
  • assert_equal true, check_options[:test] assert_equal true, check_options[:generate_rdoc] assert_equal true, check_options[:force] assert_equal Dir.pwd, check_options[:install_dir]

--
Yusuke Endoh mame@tsg.ne.jp
=end

#14

Updated by drbrain (Eric Hodel) over 10 years ago

=begin
I like your patch. Please commit it.
=end

#15

Updated by mame (Yusuke Endoh) over 10 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

=begin
This issue was solved with changeset r28279.
Kouji, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

=end

Also available in: Atom PDF