gpt4 book ai didi

ruby-on-rails - Rails(或 Ruby)中未初始化的常量 Test::Unit::UI::XML (NameError)

转载 作者:太空宇宙 更新时间:2023-11-03 18:25:00 27 4
gpt4 key购买 nike

我正在尝试创建一个 xml 运行器来生成 Rails 单元测试的结果报告。这是我的代码:

require 'test/unit'
require 'test/unit/ui/console/testrunner'

class FastFailRunner < Test::Unit::UI::Console::TestRunner
def add_fault(fault)
@faults << fault
nl
output("%3d) %s" % [@faults.length, fault.long_display])
output("--")
@already_outputted = true
end

def finished(elapsed_time)
nl
output("Finished in #{elapsed_time} seconds.")
nl
output(@result)
end
end

Test::Unit::AutoRunner::RUNNERS[:fastfail] = proc do |r|
FastFailRunner
end

当我将它作为 TESTOPTS="/home/alex/RubymineProjects/app2/test/unit/runner.rb --runner=xml"rake test

运行时

...我收到一个错误(非常奇怪的错误)

/home/alex/.rvm/gems/ruby-1.9.3-p194@global/gems/rake-0.9.2.2/lib/rake/ext/module.rb:36:in `const_missing': uninitialized constant Test::Unit::UI::XML (NameError)
from /home/alex/.rvm/gems/ruby-1.9.3-p194/gems/test-unit-2.5.2/lib/test/unit/runner/xml.rb:5:in `block in <module:Unit>'
from /home/alex/.rvm/gems/ruby-1.9.3-p194/gems/test-unit-2.5.2/lib/test/unit/autorunner.rb:389:in `[]'
from /home/alex/.rvm/gems/ruby-1.9.3-p194/gems/test-unit-2.5.2/lib/test/unit/autorunner.rb:389:in `run'
from /home/alex/.rvm/gems/ruby-1.9.3-p194/gems/test-unit-2.5.2/lib/test/unit/autorunner.rb:58:in `run'
from /home/alex/.rvm/gems/ruby-1.9.3-p194/gems/test-unit-2.5.2/lib/test/unit.rb:501:in `block in <top (required)>'
gem install minitest
/home/alex/.rvm/gems/ruby-1.9.3-p194/gems/test-unit-2.5.2/lib/test/unit/runner/xml.rb:5:in `block in <module:Unit>': uninitialized constant Test::Unit::UI::XML (NameError)
from /home/alex/.rvm/gems/ruby-1.9.3-p194/gems/test-unit-2.5.2/lib/test/unit/autorunner.rb:389:in `[]'
from /home/alex/.rvm/gems/ruby-1.9.3-p194/gems/test-unit-2.5.2/lib/test/unit/autorunner.rb:389:in `run'
from /home/alex/.rvm/gems/ruby-1.9.3-p194/gems/test-unit-2.5.2/lib/test/unit/autorunner.rb:58:in `run'
from /home/alex/.rvm/gems/ruby-1.9.3-p194/gems/test-unit-2.5.2/lib/test/unit.rb:501:in `block in <top (required)>'
Errors running test:units! #<RuntimeError: Command failed with status (1): [/home/alex/.rvm/rubies/ruby-1.9.3-p194/bin...]>
Errors running test:functionals! #<RuntimeError: Command failed with status (1): [/home/alex/.rvm/rubies/ruby-1.9.3-p194/bin...]>

我尝试要求 test/unit/ui/xml/testrunner.rb 但没有成功。有什么想法吗?

最佳答案

如果你使用的是 Ruby 1.8.7,你可以说:

require 'test/unit/ui/console/testrunner'
p Test::Unit::UI::Console::TestRunner # => no problem

(没有像 test/unit/ui/xml/testrunner.rb 这样的文件,所以我不确定你在那里做什么。)

查看 test/unit.rb 中的文档,实际上有示例代码向您展示如何执行此操作 require: http://www.ruby-doc.org/stdlib-1.8.7/libdoc/test/unit/rdoc/Test/Unit.html .

但是,问题是您使用的是 Ruby 1.9.3。 Ruby 1.9.3 中没有/test/unit!嗯,有,但它只是一个用于基本测试的兼容层;肯定没有 test/unit/ui/console/testrunner,也没有模块/类 Test::Unit::UI::Console::TestRunner

取而代之的是 minitest。您可以阅读 minitest 上的文档,了解如何制作测试运行器。 http://docs.seattlerb.org/minitest/

关于ruby-on-rails - Rails(或 Ruby)中未初始化的常量 Test::Unit::UI::XML (NameError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12664966/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com