لقد ألقيت نظرة على المشكلات السابقة ، وعلى حد علمي ، لا يبدو أنه تمت معالجتها (تبدو هذه المشكلات متشابهة ، ولكن يبدو أنها جميعًا مغلقة):
معلومات الإصدار:
خطوات التكاثر:
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
نتيجة متوقعة:
repl
والوصول إلى متغيرالنتائج:
تم تعيين Breakpoint في timers.js
، ولا يمكن الوصول إلى أي متغيرات في النطاق بخلاف 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],
...
}
أنا أفهم سبب الارتباك ، لكن هذا في الواقع يعمل على النحو المنشود. يتوقف browser.debugger
مؤقتًا خارج نطاق كتلة it ، لذلك لا يُتوقع في الواقع تحديد x و y و z.
السبب في الكشف عن browser.debugger
هو بالتحديد لأننا لا نريد تعيين نقطة توقف داخل الكتلة الخاصة به - نريد ضبطه على تدفق التحكم في المنتصف عند تنفيذ الأوامر.
لا يزال بإمكانك استخدام debugger
القديم الجيد والتشغيل بعلامة --debug
للتوقف فعليًا داخل الكتلة.
لا يؤدي استخدام مصحح أخطاء قديم جيد ومنقلة قيد التشغيل مع علامة --debug إلى إيقاف التنفيذ على الإطلاق. : - /
ما هو الهدف من وضع browser.debugger () أعلاه إذن؟ إذا لم يكن لتصحيح اختبارك ...
التعليق الأكثر فائدة
ما هو الهدف من وضع browser.debugger () أعلاه إذن؟ إذا لم يكن لتصحيح اختبارك ...