8 Stimmen

Ruby-debug und Gurke

Ich habe ein fehlschlagendes Szenario in Gurke und möchte meinen Rails-Controller mit Ruby-Debug debuggen. Aber wenn ich 'debugger' an der Stelle hinzufüge, an der ich anhalten möchte, stoppt es nicht.

Ich habe versucht, das Erfordern von Ruby-Debug und Rubygems zu den features/support/env.rb hinzuzufügen, aber dann sagt es mir, dass es Ruby-Debug nicht laden kann, obwohl Ruby-Debug auf der Gem-Liste steht und ich es in irb laden kann.

Also... was soll ich tun, um es zum Laufen zu bringen?

Danke!

0 Stimmen

Welche Version von Ruby verwendest du?

0 Stimmen

Ruby 1.8.7 (23. Dezember 2010 Patchlevel 330) [i386-mingw32] auf Windows Vista

12voto

Derick Bailey Punkte 70483

Ich hatte heute dasselbe Problem und habe es gelöst. Hier ist mein Blogeintrag, der die beiden verschiedenen Möglichkeiten erklärt, wie ich es zum Laufen gebracht habe:

http://lostechies.com/derickbailey/2011/06/29/debugging-cucumber-tests-with-ruby-debug/

Vielleicht müssen Sie einfach require "ruby-debug" zu Ihrer features/support/env.rb-Datei hinzufügen, um es zum Laufen zu bringen.

1voto

changelog Punkte 4626

Versuchen Sie, breakpoint anstelle von debugger hinzuzufügen.

Das sollte funktionieren

0voto

nessur Punkte 1133

Hierbei kommt es definitiv darauf an, ruby-debug zuerst zu laden.

Wenn Sie Probleme mit dem Laden von Gems haben und das Gem definitiv in Ihrer Gemfile aufgeführt ist, führen Sie cucumber wie folgt aus:

bundle exec cucumber ...

Dies ist oft notwendig bei Bundler.

0voto

Dan Kohn Punkte 32574

Für die moderne Ruby-Version eines Debuggers (Verwendung von binding.pry) empfehle ich die Erstellung einer Datei features/support/debugging.rb mit folgendem Inhalt und dann das Aufrufen von Cucumber mit Umgebungsvariablen, die auf debug gesetzt sind:

# `LAUNCHY=1 cucumber` um die Seite bei einem Fehler zu öffnen
After do |scenario|
  # rubocop:disable Lint/Debugger
  save_and_open_page if scenario.failed? && ENV['LAUNCHY']
  # rubocop:enable Lint/Debugger
end

# `FAST=1 cucumber` um bei einem ersten Fehler anzuhalten
After do |scenario|
  Cucumber.wants_to_quit = ENV['FAST'] && scenario.failed?
end

# `DEBUG=1 cucumber` um in den Debugger zu wechseln
Before do |scenario|
  next unless ENV['DEBUG']
  # rubocop:disable Lint/Debugger
  puts "Szenario wird debuggt: #{scenario.title}"
  binding.pry
  # rubocop:enable Lint/Debugger
end

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