Protractor: Debug funktioniert nicht in Winkelmesser

Erstellt am 14. Aug. 2014  ·  3Kommentare  ·  Quelle: angular/protractor

Ich habe mir frühere Probleme angesehen und nach meinem besten Wissen scheint es nicht angesprochen zu sein (diese Probleme scheinen ähnlich zu sein, aber alle scheinen geschlossen zu sein):

  • # 907
  • # 552 (Hier wird das Problem weiter diskutiert, obwohl es geschlossen ist)

Versionsinformation:

  • Mac 10.9.4
  • Knoten 0.10.30
  • Winkelmesser 1.0.0
  • Coffeescript 1.7.1

Schritte zum Reproduzieren:

  • Erstellen Sie die folgende Winkelmesserkonfiguration ( e2e.conf.coffee ):
    Copied from https://github.com/angular/protractor/blob/master/docs/referenceConf.js
    exports.config =
      seleniumServerJar: null
      seleniumPort: null
      seleniumArgs: []
      chromeOnly: true
      seleniumAddress: null
      sauceUser: null
      sauceKey: null
      sauceSeleniumAddress: null

      specs: ["e2e/*.coffee"]
      exclude: []
      capabilities:
        browserName: "chrome"
        count: 1
        shardTestFiles: false
        maxInstances: 1

      multiCapabilities: []
      maxSessions: -1
      baseUrl: "http://localhost:8081"
      rootElement: "body"
      allScriptsTimeout: 11000
      getPageTimeout: 10000
      framework: "jasmine"

      jasmineNodeOpts:
        isVerbose: true
        showColors: true
        includeStackTrace: true
        defaultTimeoutInterval: 30000
  • Erstellen Sie die folgende Spezifikation in e2e/spec.coffee
    describe 'Page', () ->
      it 'should debug properly', () ->
        browser.get '/'

        x = 'There is only X'
        y = 1
        z = ++y
        browser.debugger()
  • Führen Sie den folgenden Befehl aus: protractor debug e2e.conf.coffee

Erwartetes Ergebnis:

  • Der Haltepunkt wird an der richtigen Stelle eingestellt
  • Auf Variablen im lokalen Bereich kann zugegriffen werden, wenn Sie in den Modus repl wechseln und auf eine Variable zugreifen

Ergebnisse:
Der Haltepunkt ist auf timers.js und kann auf keine anderen Variablen im Gültigkeitsbereich als browser zugreifen:

protractor debug src/test/e2e.conf.coffee
Using ChromeDriver directly...
Hit SIGUSR1 - starting debugger agent.
debugger listening on port 5858
connecting... ok
break in timers.js:79
  77 }
  78
  79 function listOnTimeout() {
  80   var msecs = this.msecs;
  81   var list = this;
debug> repl
Press Ctrl + C to leave debug repl
> x
ReferenceError: x is not defined
> y
ReferenceError: y is not defined
> z
ReferenceError: z is not defined
> browser
{ controlFlow: [Function],
  schedule: [Function],
  getSession: [Function],
  getCapabilities: [Function],
  quit: [Function],
  ...
}
question

Hilfreichster Kommentar

Was zum Teufel bringt der obige browser.debugger () -Modus dann? Wenn Sie Ihren Test nicht debuggen möchten ...

Alle 3 Kommentare

Ich verstehe, warum dies verwirrend ist, aber das funktioniert tatsächlich wie beabsichtigt. browser.debugger pausiert außerhalb des Bereichs Ihres it-Blocks, sodass nicht erwartet wird, dass x, y und z definiert werden.

Der Grund, warum browser.debugger verfügbar gemacht wird, liegt genau darin, dass wir keinen Haltepunkt innerhalb des it-Blocks setzen möchten - wir möchten ihn im Kontrollfluss dazwischen setzen, wenn die Befehle ausgeführt werden.

Sie können immer noch gute alte debugger und mit dem Flag --debug ausführen, um tatsächlich innerhalb des it-Blocks anzuhalten.

Die Verwendung eines guten alten Debuggers und das Ausführen eines Winkelmessers mit dem Flag --debug unterbricht die Ausführung für mich überhaupt nicht. : - /

Was zum Teufel bringt der obige browser.debugger () -Modus dann? Wenn Sie Ihren Test nicht debuggen möchten ...

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

gamecheck80 picture gamecheck80  ·  3Kommentare

jmcollin78 picture jmcollin78  ·  3Kommentare

codef0rmer picture codef0rmer  ·  3Kommentare

rafalf picture rafalf  ·  3Kommentare

vishalshivnath picture vishalshivnath  ·  3Kommentare