99 Stimmen

Wie Rails.logger Druck auf der Konsole/stdout zu bekommen, wenn rspec ausgeführt wird?

Wie der Titel: Wie man die Rails.logger Druck auf die Konsole/stdout bei der Ausführung von rspec? Z. B.

Rails.logger.info "I WANT this to go to console/stdout when rspec is running"
puts "Like how the puts function works"

Ich möchte immer noch Rails.logger zu gehen, um log/test.log auch.

2voto

the_spectator Punkte 1136

Ergänzung zu den vorhandenen Antworten: Wenn Sie Protokolle in folgenden Sprachen drucken möchten STDOUT als auch eine Protokolldatei, dann können Sie Log Broadcast verwenden.

Einer meiner Anwendungsfälle war, dass Rake Seed/Aufgaben Protokolle in STDOUT sowie die Protokolldateien.

Rails.logger.extend(
  ActiveSupport::Logger.broadcast(
    ActiveSupport::Logger.new($stdout)
  )
)

1voto

mario199 Punkte 338

Ich hatte ein ähnliches Problem in Rails 5.0. Meine api/request-Spezifikationen gaben keine Fehler in die Konsole aus, sondern in die Datei log/test.log. Andere Testtypen waren Ausgabe Fehler auf der Konsole normal.

Ändern von config.action_dispatch.show_exceptions a false das Problem behoben:

# config/environments/test.rb
config.action_dispatch.show_exceptions = false

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X