Project

General

Profile

Actions

Bug #1085

closed

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

Added by kouji (Kouji Takao) over 13 years ago. Updated about 11 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
Actions #1

Updated by ko1 (Koichi Sasada) over 13 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

Actions #2

Updated by zenspider (Ryan Davis) over 13 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

Actions #3

Updated by naruse (Yui NARUSE) over 12 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

Actions #4

Updated by drbrain (Eric Hodel) over 12 years ago

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

=begin
This is a minitest issue.
=end

Actions #5

Updated by mame (Yusuke Endoh) about 12 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
=end

Actions #6

Updated by drbrain (Eric Hodel) about 12 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

Actions #7

Updated by zenspider (Ryan Davis) about 12 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

Actions #8

Updated by mame (Yusuke Endoh) about 12 years ago

=begin
Hi,

2010/4/19 Ryan Davis :

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

=end

Actions #9

Updated by drbrain (Eric Hodel) about 12 years ago

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

2010/4/19 Ryan Davis :

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

Actions #10

Updated by mame (Yusuke Endoh) about 12 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
=end

Actions #11

Updated by mame (Yusuke Endoh) about 12 years ago

=begin
Hi, Eric

Any update here?

--
Yusuke Endoh
=end

Actions #12

Updated by luislavena (Luis Lavena) about 12 years ago

=begin
On Mon, May 10, 2010 at 11:40 AM, Yusuke Endoh 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

Actions #13

Updated by mame (Yusuke Endoh) about 12 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
=end

Actions #14

Updated by drbrain (Eric Hodel) about 12 years ago

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

Actions #15

Updated by mame (Yusuke Endoh) about 12 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

Actions

Also available in: Atom PDF