【发布时间】:2015-01-07 12:03:00
【问题描述】:
我正在开发一个 Rails 3 项目。详细版本信息:
rake, version 10.3.2
Rails 3.0.20
ruby 1.8.7 (2013-06-27 patchlevel 374)
我最近在我们的测试套件中遇到了一些测试问题。如果我只运行rake 而不指定任务,rake 会运行整个测试套件,并且所有测试都会通过。但是,一个特定的任务:rake test:workers 给出了失败的测试。
在试图找出失败测试的真相时,我试图找出默认环境和我命名任务的环境之间的不同之处。但是,我在任何地方都找不到指定的默认任务。我在整个项目目录中搜索“task:default”,结果为空。我也尝试了rake -W :default,但没有成功。
另外,我运行的结果不同
ruby -I test <file path>
相对于
rake test:workers FILE=<file path>
前者运行没有失败的测试,后者有失败。此外,当我中断后一个(rake)命令时,我得到以下信息:
Command failed with status (1): [ruby -I"lib:test" -I"/<home directory>/.rvm/gems/ruby-1.8.7-p374@global/gems/rake-10.3.2/lib" "/<home directory>/.rvm/gems/ruby-1.8.7-p374@global/gems/rake-10.3.2/lib/rake/rake_test_loader.rb" "<file path>" ]
所以,看起来rake test:workers FILE=<filename> 真正做的只是在ruby -I 上运行一个变体并加载了更多目录。所以我在命令行尝试了:
ruby -I"lib:test" -I"/<home directory>/.rvm/gems/ruby-1.8.7-p374@global/gems/rake-10.3.2/lib" "/<home directory>/.rvm/gems/ruby-1.8.7-p374@global/gems/rake-10.3.2/lib/rake/rake_test_loader.rb" "<file path>"
这让我没有失败的测试。
总而言之,我可以使用ruby -I 运行单个测试并且没有失败的测试,但是当 rake 运行看似相同的命令时,我得到了失败的测试。
问题:
1) 我应该在哪里寻找我的 :default rake 任务?
2) rake 使用ruby -I 运行任务和我从命令行运行它有什么区别?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 rake