2010-02-09 3 views
1

몇 가지 단위 테스트를 실행하고 싶지만 이것이 내가 얻는 것입니다. 인터넷은이 문제에 대해 침묵합니다. Rails 2.1 도움이되는 다른 정보가 있으면 알려주십시오.레이크 중단되었습니다! 잘못된 데이터베이스 이름입니까?

[email protected]:~/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을 : 당신이 당신의 config/database.yml 파일에 test 환경에 대한 데이터베이스 이름을 지정하지 않은 것처럼

# 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 

답변

2

것 같습니다.

@a = YAML :: 부하 (File.open ("주석

+0

의 내용을 붙여 @sleepycat 이번이 처음이라면 개발 데이터베이스를 가리 키도록 유혹받을 수 있습니다. DONT DO NOT THIS 그렇지 않으면 dev 데이터베이스에있는 모든 것을 잃게됩니다. 테스트 데이터베이스를 생성 한 다음 스키마에서 테이블과 컬럼을 생성 해 보겠습니다. – keikun17

+0

@Alex : 제 database.yml의 테스트 섹션에 데이터베이스 이름이 있습니다. 나는 내 앞에 그것을 가지고 있지 않지만 나는 이미 그곳에 확신한다. 나는 내일 당신에게 확실히 말할 것입니다 ... @keikun : :) 실제로 제가 처음으로 말한 이유는 방금 앱에서 테스트를하기 시작했기 때문입니다. 그래도 고마워. – mikewilliamson

+0

@Alex : 확인했는데 확실히 내 database.yml에 테스트 데이터베이스 이름이 있습니다. 당신이 다른 생각을 가지고 있다면 나는 그것을 듣고 싶습니다. 이것은 진짜 머리 긁적입니다. – mikewilliamson

0

캔트 끝 라인은 그래서 난 그냥


당신이 다음 스크립트/콘솔을 실행 할 수있는 여기를 놓을 게요 단지 후속 # {RAILS_ROOT} /config/database.yml "))

@a

는, @a

관련 문제