gpt4 book ai didi

ruby - 为什么这需要从 rake 失败但在明确运行时成功?

转载 作者:数据小太阳 更新时间:2023-10-29 08:29:07 24 4
gpt4 key购买 nike

帮助我理解为什么这个项目的测试在直接执行时运行,但在通过 rake 运行时却不运行。通过 Rake TestTask 运行时的错误:

** Execute test
/home/myockey/.rvm/rubies/ruby-1.9.2-p136/bin/ruby -I"lib:test" "/home/myockey/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "test/unit/data_test.rb" "test/unit/station_test.rb" "test/unit/raw_test.rb" "test/unit/parser_test.rb" "test/unit/report_test.rb"
<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- test/unit/../metar_test_helper.rb (LoadError)
from <internal:lib/rubygems/custom_require>:29:in `require'
from test/unit/data_test.rb:4:in `<top (required)>'
from /home/myockey/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5:in `load'
from /home/myockey/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5:in `block in <main>'
from /home/myockey/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5:in `each'
from /home/myockey/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5:in `<main>'
rake aborted!

当我直接运行脚本时,我得到以下信息:

myockey@myockey-K61IC:~/opt/joeyates-metar-parser-cdca19f/test/unit$ ruby data_test.rb 
Loaded suite data_test
Started
...................................................
Finished in 0.084939 seconds.

51 tests, 121 assertions, 0 failures, 0 errors, 0 skips

ruby 文件的顶部如下所示:

#!/usr/bin/env ruby
# encoding: utf-8

require File.dirname(__FILE__) + '/../metar_test_helper'

class TestMetarData < Test::Unit::TestCase

请注意,我尝试将 .rb 文件扩展名添加到 metar_test_helper,但没有成功。请放心,名为 metar_test_helper.rb 的文件存在于该文件的父目录中,并且它具有足够的访问权限。

增加了赏金。我知道这一定是一个简单的路径问题,但我非常感谢一些指导来解决它并帮助我理解它。

最佳答案

您在这两种情况下都使用 Ruby 1.9.2 吗?

1.9.2 不在路径中包含 "." ($:),而 1.9.2 之前的版本包含。

要检查您正在使用的 Ruby 版本以及路径是什么,请执行

STDERR.puts "RUBY_VERSION is #{RUBY_VERSION}"
STDERR.puts "Path is #{$:}"

在异常诱导行之前

require File.dirname(__FILE__) + '/../metar_test_helper'

如果那不能解决问题,请通过执行询问它需要什么

STDERR.puts "The file I'm requiring is #{File.dirname(__FILE__) + '/../metar_test_helper'}"

看看两种方法的效果如何。

您可能希望在 How do I debug Ruby scripts? 中查看有关调试的其他提示

关于ruby - 为什么这需要从 rake 失败但在明确运行时成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5495386/

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