【发布时间】:2016-11-17 10:39:12
【问题描述】:
我的测试过去可以工作,但现在它们都失败了,并出现以下错误和堆栈跟踪:
TypeError: no implicit conversion of nil into String
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/postgresql/utils.rb:24:in `quote_ident'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/postgresql/utils.rb:24:in `quoted'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/postgresql/quoting.rb:31:in `quote_table_name'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/postgresql_adapter.rb:738:in `column_definitions'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/postgresql/schema_statements.rb:186:in `columns'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/fixtures.rb:750:in `column_names'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/fixtures.rb:742:in `timestamp_column_names'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/fixtures.rb:627:in `block in table_rows'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/fixtures.rb:621:in `each'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/fixtures.rb:621:in `map'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/fixtures.rb:621:in `table_rows'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/fixtures.rb:526:in `block (3 levels) in create_fixtures'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/fixtures.rb:524:in `each'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/fixtures.rb:524:in `block (2 levels) in create_fixtures'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/abstract/transaction.rb:184:in `within_new_transaction'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/fixtures.rb:523:in `block in create_fixtures'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/postgresql/referential_integrity.rb:17:in `disable_referential_integrity'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/fixtures.rb:508:in `create_fixtures'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/fixtures.rb:979:in `load_fixtures'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/fixtures.rb:941:in `setup_fixtures'
vendor/bundle/gems/activerecord-4.2.5.1/lib/active_record/fixtures.rb:826:in `before_setup'
vendor/bundle/gems/minitest-5.9.1/lib/minitest/test.rb:105:in `block (3 levels) in run'
vendor/bundle/gems/minitest-5.9.1/lib/minitest/test.rb:204:in `capture_exceptions'
vendor/bundle/gems/minitest-5.9.1/lib/minitest/test.rb:104:in `block (2 levels) in run'
vendor/bundle/gems/minitest-5.9.1/lib/minitest/test.rb:255:in `time_it'
vendor/bundle/gems/minitest-5.9.1/lib/minitest/test.rb:103:in `block in run'
vendor/bundle/gems/minitest-5.9.1/lib/minitest.rb:348:in `on_signal'
vendor/bundle/gems/minitest-5.9.1/lib/minitest/test.rb:275:in `with_info_handler'
vendor/bundle/gems/minitest-5.9.1/lib/minitest/test.rb:102:in `run'
vendor/bundle/gems/minitest-5.9.1/lib/minitest.rb:799:in `run_one_method'
vendor/bundle/gems/minitest-5.9.1/lib/minitest.rb:322:in `run_one_method'
vendor/bundle/gems/minitest-5.9.1/lib/minitest.rb:310:in `block (2 levels) in run'
vendor/bundle/gems/minitest-5.9.1/lib/minitest.rb:309:in `each'
vendor/bundle/gems/minitest-5.9.1/lib/minitest.rb:309:in `block in run'
vendor/bundle/gems/minitest-5.9.1/lib/minitest.rb:348:in `on_signal'
vendor/bundle/gems/minitest-5.9.1/lib/minitest.rb:335:in `with_info_handler'
vendor/bundle/gems/minitest-5.9.1/lib/minitest.rb:308:in `run'
vendor/bundle/gems/minitest-5.9.1/lib/minitest.rb:158:in `block in __run'
vendor/bundle/gems/minitest-5.9.1/lib/minitest.rb:158:in `map'
vendor/bundle/gems/minitest-5.9.1/lib/minitest.rb:158:in `__run'
vendor/bundle/gems/minitest-5.9.1/lib/minitest.rb:135:in `run'
vendor/bundle/gems/minitest-5.9.1/lib/minitest.rb:62:in `block in autorun'
我运行be rake db:drop && be rake db:create && be rake db:migrate && be rake db:schema:dump && be rake db:test:prepare 以确保我的数据库是干净的(其中be 是bundle exec 的别名)
我怎样才能让我的测试再次正确运行?
编辑:如果您不赞成,请告诉我如何改进我的问题。
【问题讨论】:
标签: ruby-on-rails testing