El año pasado creé un plugin y quería verificar que aún funcione en la última versión de Discourse. Tras reinicializar mi entorno de desarrollo (tuve problemas con las migraciones de la base de datos), pude verificar manualmente que el plugin sigue funcionando. Sin embargo, al ejecutar mis pruebas de especificación (las cuales pasaron el año pasado cuando las escribí), obtengo el siguiente error:
Failure/Error: DB.test_transaction = ActiveRecord::Base.connection.current_transaction
NoMethodError:
undefined method `test_transaction=' for #<MiniSqlMultisiteConnection:0x00007fb8b3815c40>
También tenía instalado localmente Discourse Footnote y obtengo el mismo error al ejecutar esas pruebas.
¿Alguien puede sugerir cómo solucionar mi entorno y/o mis pruebas para que funcionen en la versión actual de Discourse?
Asegúrate de incluir LOAD_PLUGINS=1 al ejecutar bin/rspec desde el directorio de origen de discourse (con el repositorio del plugin enlazado simbólicamente desde la carpeta plugins/).
Estoy ejecutando el siguiente comando desde el directorio discourse:
d/rake plugin:spec['discourse-ruby']
@riking No estoy incluyendo explícitamente LOAD_PLUGINS=1, pero parece que ocurre de todos modos (asumo que es porque estoy usando plugin:spec). La primera línea después de ejecutar el comando es:
Parece que el script d/rake utiliza por defecto el entorno development, por lo que necesitarás ejecutar lo siguiente en su lugar: RAILS_ENV=test d/rake plugin:spec['discourse-ruby']