使用Spree 1.1.0运行`rake test_app`时,'系统找不到指定的路径'

时间:2012-04-14 15:14:14

标签: ruby-on-rails-3.2 spree

我在Rails 3.2和Spree 1.1上。运行初始rake test_app --trace时,我得到:

** Invoke test_app (first_time)
** Execute test_app
** Invoke common:test_app (first_time)
** Execute common:test_app
Generating dummy Rails application...
Setting up dummy database...
The system cannot find the path specified.

我正在rake test_app开始spree\core。据spree\core\lib\generators\spree\dummy\templates\rails\database.yml我所知,Spree正在寻找db\spree_test.sqlite3。我尝试手动创建此数据库,但没有运气。

此外,我在Windows 7上,如果它有用,因为它可能是某种环境设置。

1 个答案:

答案 0 :(得分:3)

这似乎是Spree生成器中的一个小错误:

puts "Setting up dummy database..."
cmd = "bundle exec rake db:drop db:create db:migrate db:test:prepare"

if RUBY_PLATFORM =~ /mswin/ #windows
  cmd += " >nul"
else
  cmd += " >/dev/null"
end

system(cmd)

在我的情况下,RUBY_PLATFORM是" i386-mingw32"然后阻止添加" >的/ dev / null的"这是Linux的有效消音器,但在Windows中给出了错误。

如此简单的修复可能是:

if RUBY_PLATFORM =~ /mswin|mingw/

正如我在帖子hereherehere中看到的,没有可靠的方法来确定正在运行的操作系统,但是有一些启发式代码。

代码取自spree \ core \ lib \ spree \ testing_support \ common_rake.rb

否则你可以运行:

bundle exec rake db:drop db:create db:migrate db:test:prepare