为什么这要求rake失败,但在显式运行时却成功? [英] Why does this require fail from rake but succeed when ran explicitly?

查看:15
本文介绍了为什么这要求rake失败,但在显式运行时却成功?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请帮助我了解为什么此项目的测试在直接执行时运行,而在通过rake运行时不运行。通过Rake测试任务运行时出现错误:

** 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

请注意,我尝试向METAR_TEST_HELPER添加.rb文件扩展名,但无济于事。请放心,名为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?

中有关调试的其他提示

这篇关于为什么这要求rake失败,但在显式运行时却成功?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆