2015-03-18 18 views
7

Cerco di eseguire il debug del mio user_mailer.rb all'interno del mio ambiente di test. Ma non so perché il debugger non si ferma dove suppone.Perché doesnt byebug/pry si ferma al punto di interruzione in Rspec ActionMailer?

Quindi, il codice che grosso modo ho è: user_mailer_spec.rb

describe UserMailer do 
    describe '#send_notification_letters' do 
    # bunch of code omitted here ... 
    it 'should record itself to the database' 
     expect { UserMailer.send_notification_letters(user) }.to change{SentMail.count}.by(1) 
    end 
    end 
end 

In user_mailer.rb

class UserMailer < ActionMailer::Base 
    def send_notification_letters(user) 
    byebug # should break here but doesnt, 
      # also tried binding.pry here, also doesnt work 
    # buggy code ... 
    # buggy code ... 
    # buggy code ... 

    SentMail.create(...) # never reached 
    mail(to:..., from:...) 
    end 
end 

La domanda è: perché è byebug/leva che non si fermi nel user_mail.rb quando ho eseguito il test rspec spec/mailer/user_mailer_spec.rb?

E perché?

Come fermarsi a quel punto di interruzione?

C'è un errore nel debugger?

+0

Che cosa si ottiene nei log? –

+0

Questo mi succede frequentemente a meno che aggiungo anche 'require 'byebug'' sopra la riga' byebug'. – infused

+0

@MohammadAbuShady, ci sono solo un mucchio di log delle transazioni SQL in test.log, che significa UserMailer. send_notification_letters() viene eseguito. Ma il debugger non viene fermato. Niente nei registri sul debugger. –

risposta

0

Ho incontrato la stessa situazione oggi. Dopo aver scavato in giro, ho trovato il mio problema è causato dalla configurazione del server .

Modifica il tuo config/thin.yml:

daemonize: false 

Oppure si può semplicemente commentare la thin gemma nella vostra Gemfile, utilizzare il posto di default WEBrick.

+0

Sto avendo lo stesso problema, ma credo che non sia un problema "sottile" in generale perchè non lo sto usando. :) – Stan666

+0

Lo stesso qui. Sto usando Puma. – martins

Problemi correlati