帮我理解为什么这个项目的测试直接执行时运行,但不通过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!
当我直接运行该脚本,我得到以下:
[email protected]:~/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
红宝石文件的顶部看起来是这样的:
#!/usr/bin/env ruby
# encoding: utf-8
require File.dirname(__FILE__) + '/../metar_test_helper'
class TestMetarData < Test::Unit::TestCase
时通过耙TestTask运行错误
请注意,我尝试将.rb文件扩展名添加到metar_test_helper无济于事。请放心,文件的父目录中存在一个名为metar_test_helper.rb的文件,并且它具有足够的权限以供访问。
增加了赏金。我知道这肯定是一个简单的路径问题,但我真的很感谢解决它的一些指导并帮助我理解它。
我怀疑这是一个路径isue,但我重申,我不明白为什么。请注意为它无法加载的文件提供的相对路径:“test/unit /../ metar_test_helper.rb”。这是RakeFile和我执行Rake的目录的正确相对路径。这是不是它应该采取的正确道路? – 2011-03-31 12:53:37
我打算回复同样的事情,只是我不了解Ruby。 :) – Christian 2011-04-03 01:50:16