Saya telah memeriksa masalah-masalah yang lalu, dan sejauh pengetahuan saya, masalah itu tampaknya tidak ditangani (masalah ini tampak serupa, tetapi semuanya tampaknya sudah ditutup):
Informasi Versi:
Langkah-langkah untuk mereproduksi:
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
Hasil yang diharapkan:
repl
dan mengakses variabelHasil:
Breakpoint disetel di timers.js
, dan tidak dapat mengakses variabel apa pun dalam cakupan selain 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],
...
}
Saya mengerti mengapa ini membingungkan, tetapi ini sebenarnya berfungsi sebagaimana mestinya. browser.debugger
berhenti di luar lingkup blok it Anda, jadi x, y, dan z sebenarnya tidak diharapkan untuk didefinisikan.
Alasan mengapa browser.debugger
diekspos justru karena kita tidak ingin menetapkan breakpoint di dalam blok it - kita ingin mengaturnya pada aliran kontrol di antara saat perintah dijalankan.
Anda masih dapat menggunakan debugger
dan menjalankan flag --debug
untuk benar-benar berhenti di dalam blok itu.
Menggunakan debugger lama yang baik dan menjalankan busur derajat dengan flag --debug tidak menghentikan eksekusi sama sekali untuk saya. : - /
lalu apa sih gunanya mode browser.debugger () di atas? Jika tidak untuk men-debug pengujian Anda ...
Komentar yang paling membantu
lalu apa sih gunanya mode browser.debugger () di atas? Jika tidak untuk men-debug pengujian Anda ...