2011-03-10 9 views
8

corro:Rails 3: ¿Por qué Rails intenta insertar valores en la base de datos cuando ejecuta una prueba simple?

ruby -I test test/unit/job_test.rb 

de mi directorio raíz de la aplicación, y me sale:

Loaded suite test/unit/job_test 
Started 
E 
Finished in 2.046875 seconds. 

1) Error: 
    test_My_First_Test(JobTest): 
    ActiveRecord::RecordNotUnique: Mysql2::Error: Duplicate entry '' 
    for key 'name': 
    INSERT INTO `ac_buyers` (`created_at`, `updated_at`, `id`) VALUES 
    ('2011-03-10 06:04:06', '2011-03-10 06:04:06', 298486374) 

lo que está pasando aquí?

¿Por qué Rails intenta insertar valores en la base de datos?

Aquí es test/unit/job_test.rb:

require 'test_helper' 
class JobTest < ActiveSupport::TestCase 
    test "My First Test" do 
    assert false 
    end 
end 

Respuesta

10

Parece que esto es Rieles accesorios. Mire en las pruebas/accesorios y verá algunos archivos generados por los raíles para sembrar su base de datos de prueba con datos para evaluar. Cuando ejecutas tus pruebas, los rieles los insertarán en tu DB de prueba.

+0

Gracias! De hecho, los dispositivos predeterminados están vacíos, lo que causa el error. –

+0

Tuve un problema similar en Rails 4. Se agregó restricción después de las ejecuciones 'rails g ...' y estaba arrojando un error al probar. Tuve que actualizar el accesorio para tener en cuenta la nueva restricción. –

Cuestiones relacionadas