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):
Información de versión:
Pasos para reproducir:
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
e2e/spec.coffee
describe 'Page', () ->
it 'should debug properly', () ->
browser.get '/'
x = 'There is only X'
y = 1
z = ++y
browser.debugger()
protractor debug e2e.conf.coffee
Resultado Esperado:
repl
y acceder a una variableResultados:
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],
...
}
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 ...
Comentario más útil
Entonces, ¿cuál es el punto del modo browser.debugger () anterior? Si no para depurar su prueba ...