J'ai jeté un coup d'œil sur les problèmes passés et, à ma connaissance, cela ne semble pas être résolu (ces problèmes semblent similaires, mais semblent tous clos):
Information sur la version:
Étapes à suivre pour reproduire:
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
Résultat attendu:
repl
et en accédant à une variableRésultats:
Le point d'arrêt est défini dans timers.js
, et ne peut accéder à aucune variable de portée autre que 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],
...
}
Je comprends pourquoi cela est déroutant, mais cela fonctionne réellement comme prévu. browser.debugger
fait
La raison pour laquelle browser.debugger
est exposé est précisément parce que nous ne voulons pas définir de point d'arrêt à l'intérieur du bloc it - nous voulons le définir sur le flux de contrôle entre les deux lorsque les commandes s'exécutent.
Vous pouvez toujours utiliser le bon vieux debugger
et exécuter avec l'indicateur --debug
pour faire une pause dans le bloc it.
Utiliser un bon vieux débogueur et un rapporteur en cours d'exécution avec l'indicateur --debug n'interrompt pas du tout l'exécution pour moi. : - /
quel est donc l'intérêt du mode browser.debugger () ci-dessus? Sinon pour déboguer votre test ...
Commentaire le plus utile
quel est donc l'intérêt du mode browser.debugger () ci-dessus? Sinon pour déboguer votre test ...