我希望能够进行一些单元测试,但这正是我得到的。互联网对这个问题保持沉默。 Rails 2.1 如果有任何其他信息有帮助,请告诉我。
mike@sleepycat:~/projects/myapp$ rake test:units --trace
(in /home/mike/projects/myapp)
** Invoke test:units (first_time)
** Invoke db:test:prepare (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:abort_if_pending_migrations (first_time)
** Invoke environment
** Execute db:abort_if_pending_migrations
** Execute db:test:prepare
** Invoke db:test:clone (first_time)
** Invoke db:schema:dump (first_time)
** Invoke environment
** Execute db:schema:dump
** Invoke db:test:purge (first_time)
** Invoke environment
** Execute db:test:purge
rake aborted!
Mysql::Error: Incorrect database name '': DROP DATABASE IF EXISTS ``
/usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/abstract_adapter.rb:147:in `log'
/usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/mysql_adapter.rb:299:in `execute'
/usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/mysql_adapter.rb:384:in `drop_database'
/usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/mysql_adapter.rb:364:in `recreate_database'
/usr/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/tasks/databases.rake:315
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain'
我的database.yml:
# MySQL (default setup). Versions 4.1 and 5.0 are recommended.
#
# Install the MySQL driver:
# gem install mysql
# On MacOS X:
# gem install mysql -- --include=/usr/local/lib
# On Windows:
# gem install mysql
# Choose the win32 build.
# Install MySQL and put its /bin directory on your path.
#
# And be sure to use new-style password hashing:
# http://dev.mysql.com/doc/refman/5.0/en/old-client.html
development:
adapter: mysql
database: myapp_development
username: root
password: mikespass
host: 127.0.0.1
#socket: /tmp/mysql.sock
# Warning: The database defined as 'test' will be erased and
# re-generated from your development database when you run 'rake'.
# Do not set this db to the same as development or production.
test:
adapter: mysql
database: myapp_test
username: root
password: mikespass
host: 127.0.0.1
production:
adapter: mysql
database: myapp_production
username: root
password:
mikes:
adapter: mysql
database: myapp_development
username: root
password: mikespass
host: 127.0.0.1
staging:
adapter: mysql
database: myapp_development
username: root
password: mikespass
host: 127.0.0.1
答案 0 :(得分:2)
看起来您没有为test
文件中的config/database.yml
环境指定数据库名称。
答案 1 :(得分:0)
在评论中不能结束,所以我只是把它放在这里
你可以运行脚本/控制台然后执行:
@a = YAML :: load(File.open(“#{RAILS_ROOT} /config/database.yml”))
@a
然后粘贴@a
的内容