Protractor: La depuración no funciona en transportador

Creado en 14 ago. 2014  ·  3Comentarios  ·  Fuente: angular/protractor

He echado un vistazo a los problemas pasados ​​y, según mi leal saber y entender, no parece que se haya abordado (estos problemas parecen similares, pero todos parecen estar cerrados):

  • # 907
  • # 552 (que tiene más discusión sobre el problema existente a pesar de estar cerrado)

Información de versión:

  • Mac 10.9.4
  • Nodo 0.10.30
  • Transportador 1.0.0
  • Coffeescript 1.7.1

Pasos para reproducir:

  • Cree la siguiente configuración de transportador ( 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
  • Cree la siguiente especificación en e2e/spec.coffee
    describe 'Page', () ->
      it 'should debug properly', () ->
        browser.get '/'

        x = 'There is only X'
        y = 1
        z = ++y
        browser.debugger()
  • Ejecute el siguiente comando: protractor debug e2e.conf.coffee

Resultado Esperado:

  • El punto de interrupción se establece en la ubicación correcta.
  • Las variables en el ámbito local son accesibles al ingresar al modo repl y acceder a una variable

Resultados:
El punto de interrupción se establece en timers.js y no puede acceder a ninguna variable en el alcance que no sea browser :

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

Comentario más útil

Entonces, ¿cuál es el punto del modo browser.debugger () anterior? Si no para depurar su prueba ...

Todos 3 comentarios

Entiendo por qué esto es confuso, pero en realidad funciona según lo previsto. browser.debugger hace

La razón por la que browser.debugger está expuesto es precisamente porque no queremos establecer un punto de interrupción dentro del bloque it; queremos establecerlo en el flujo de control intermedio cuando se ejecutan los comandos.

Todavía puede usar el viejo debugger y ejecutar con la bandera --debug para hacer una pausa dentro del bloque it.

Usar un depurador antiguo y ejecutar un transportador con el indicador --debug no detiene la ejecución en absoluto para mí. : - /

Entonces, ¿cuál es el punto del modo browser.debugger () anterior? Si no para depurar su prueba ...

¿Fue útil esta página
0 / 5 - 0 calificaciones