Pregunta

Tengo fábricas que incluyen algunos datos de configuración. Por ejemplo:

Factory.define :event do |event|
  event.name  { Factory.next(:email) }
  event.blurb "Test event blurb"
  event.association(:owner, :factory => :user)
  event.countries Country.all
end

Country.all simplemente asigna todos los países de una tabla de búsqueda para ese evento en particular. Incluyo todos los países por cargar las semillas antes de correr mis pruebas con esta línea en mi ayudador prueba:

require "#{Rails.root}/db/seeds.rb"

Esto funciona muy bien cuando se ejecutan las pruebas unitarias individuales:

ruby test/unit/event_test.rb

Sin embargo Country.all devuelve nada cuando corro la prueba usando:

rake test:units

¿Alguien sabe por qué ocurre esto?

¿Fue útil?

Solución

Se requieren semillas en el test_helper, se carga una vez. Después de cada base de datos de prueba de funcionamiento es aniquilado, incluyendo datos sembradas. Con el fin de hacer que las semillas se cargan cada vez, añadir algo como esto a la definición de clase ActiveSupport::TestCase de su test_helper.

class ActiveSupport::TestCase
  # this line:
  setup { load "#{Rails.root}/db/seeds" }
end

Otros consejos

Tener un vistazo al código fuente de la gema rake. Parece que tendrá que cargar su archivo seeds.rb manualmente en cada archivo de prueba, o mejor aún, desde test_helper.rb.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top