Ho creato un plugin lo scorso anno e volevo verificare che funzionasse ancora sull’ultima versione di Discourse. Dopo aver reinizializzato il mio ambiente di sviluppo (avevo problemi di migrazione del database), sono riuscito a verificare manualmente che il plugin funzionasse ancora. Tuttavia, quando eseguo i miei test spec (che avevano superato l’anno scorso quando li ho scritti), ricevo il seguente errore:
Failure/Error: DB.test_transaction = ActiveRecord::Base.connection.current_transaction
NoMethodError:
undefined method `test_transaction=' for #<MiniSqlMultisiteConnection:0x00007fb8b3815c40>
Avevo anche installato localmente Discourse Footnote e ricevo lo stesso errore quando eseguo quei test.
Qualcuno può suggerire come risolvere il mio ambiente e/o i miei test in modo che funzionino sulla versione attuale di Discourse?
Assicurati di includere LOAD_PLUGINS=1 quando esegui bin/rspec dalla directory sorgente di discourse (con il repository del plugin collegato simbolicamente dalla cartella plugins/).
Sto eseguendo il seguente comando dalla directory discourse:
d/rake plugin:spec['discourse-ruby']
@riking Non sto includendo esplicitamente LOAD_PLUGINS=1, ma sembra che ciò avvenga comunque (presumo perché sto eseguendo plugin:spec). La prima riga dopo aver eseguito il comando è:
Sembra che lo script d/rake utilizzi di default l’ambiente development, quindi dovrai eseguire invece il seguente comando: RAILS_ENV=test d/rake plugin:spec['discourse-ruby']