Eu criei um plugin no ano passado e queria verificar se ele ainda funciona na versão mais recente do Discourse. Após reinicializar meu ambiente de desenvolvimento (tinha problemas de migração de banco de dados), consegui verificar manualmente que o plugin ainda funciona. No entanto, ao executar meus testes de especificação (que passaram no ano passado quando os escrevi), recebo o seguinte erro:
Failure/Error: DB.test_transaction = ActiveRecord::Base.connection.current_transaction
NoMethodError:
undefined method `test_transaction=' for #<MiniSqlMultisiteConnection:0x00007fb8b3815c40>
Eu também tinha o Discourse Footnote instalado localmente, e recebo o mesmo erro ao executar esses testes.
Alguém pode sugerir como corrigir meu ambiente e/ou meus testes para que eles passem na versão atual do Discourse?
Certifique-se de incluir LOAD_PLUGINS=1 ao executar bin/rspec a partir do diretório de origem discourse (com o repositório do plugin vinculado simbolicamente na pasta plugins/).
Estou executando o seguinte comando a partir do diretório discourse:
d/rake plugin:spec['discourse-ruby']
@riking Não estou incluindo explicitamente LOAD_PLUGINS=1, mas isso parece acontecer de qualquer forma (acho que porque estou fazendo plugin:spec). A primeira linha após executar o comando é:
Parece que o script d/rake usa o ambiente development como padrão, então você precisará executar o seguinte em vez disso: RAILS_ENV=test d/rake plugin:spec['discourse-ruby']