Con el tiempo, eso tuvo sentido. Incluso escribí una especificación, pero incluso antes de agregar mi especificación (y cuando volví al estado anterior a la adición de cualquier código), las pruebas fallan debido a:
Se produjo un error al cargar ./plugins/discourse-prometheus/spec/middleware/metrics_spec.rb.
Failure/Error: Group.find_by(id: id)
ActiveRecord::StatementInvalid:
PG::UndefinedTable: ERROR: la relación "groups" no existe
LINE 8: WHERE a.attrelid = '"groups"'::regclass
^
# (eval):24:in `async_exec'
# (eval):24:in `async_exec'
# ./app/models/group.rb:529:in `lookup_group'
# ./app/models/group.rb:513:in `block in ensure_automatic_groups!'
# ./app/models/group.rb:512:in `each_key'
# ./app/models/group.rb:512:in `ensure_automatic_groups!'
# (eval):3:in `block (2 levels) in run_file'
# ./spec/rails_helper.rb:79:in `<top (required)>'
# ./plugins/discourse-prometheus/spec/middleware/metrics_spec.rb:3:in `require'
# ./plugins/discourse-prometheus/spec/middleware/metrics_spec.rb:3:in `<top (required)>'
# ------------------
# --- Causado por: ---
# PG::UndefinedTable:
# ERROR: la relación "groups" no existe
# LINE 8: WHERE a.attrelid = '"groups"'::regclass
# ^
# (eval):24:in `async_exec'
No se encontraron ejemplos.
Parece afectar a casi todas las pruebas del sitio. Creo que ejecuté correctamente git reset --hard upstream/master para volver a lo que debería funcionar y luego eliminé y volví a crear la base de datos, pero aún obtengo ese error.
Admito que no soy el mejor leyendo mensajes de error. Revisé el archivo que creía que estaban mencionando, pero no vi ninguna línea de “group(s)”.
Si este es tu propio caso, podría ser algo con lo que yo también tengo dificultades, es decir: cuándo la pluralización significa más de uno o cuándo es una convención.
Es decir, es posible que estés pensando en “groups” cuando la sintaxis requiere “group” sin la “s”.
De manera similar, a veces el código requiere un caso específico, por ejemplo: “Group” frente a “group”.
Me gustaría decir que lo sé, pero no lo sé. Sugiero programar con el método “monos ven, monos hacen”, a menos que alguien que sepa más intervenga.
No hice nada con los grupos (el grupo no aparece en mi plugin) y esas pruebas fallan en todo Discourse. Haré un clon más de la rama master para ver si de alguna manera mi fork… ¡Gracias de nuevo!
¡Quizás ese sea mi problema! Quizás bajé el entorno de desarrollo y no el de pruebas. Gracias. Ah, y necesito instalar un entorno de desarrollo nuevo en mi portátil antes de ir al aeropuerto.
Acabo de agregar una verificación de migraciones pendientes al inicio del conjunto de pruebas, por lo que debería ser más fácil identificar este tipo de problemas en el futuro
¡Gracias, David! Vi que ahora imprime una advertencia. No termino de entender por qué fue tan difícil migrar la base de datos de pruebas, pero después de ejecutar varios comandos de destroy, create y migrate, y luego el RAILS_ENV=test bin/rake db:migrate que recomendaste, logré ver que mi spec está roto. Ahora puedo arreglarlo y estoy en camino de aprender a escribir specs. ¡Gracias de nuevo por tu empujón, @Mittineague!
¿Se ha solucionado eso? Parece que ./bin/rake db:drop db:create elimina y crea la base de datos de prueba, pero parece que ./bin/rake db:migrate no ejecuta también las migraciones en la base de datos de prueba.