Protractor: Debug tidak berfungsi di Busur derajat

Dibuat pada 14 Agu 2014  ·  3Komentar  ·  Sumber: angular/protractor

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):

  • # 907
  • # 552 (Yang membahas lebih lanjut tentang masalah yang ada meskipun ditutup)

Informasi Versi:

  • Mac 10.9.4
  • Simpul 0.10.30
  • Busur derajat 1.0.0.0
  • Coffeescript 1.7.1

Langkah-langkah untuk mereproduksi:

  • Buat konfigurasi busur derajat berikut ( 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
  • Buat spesifikasi berikut di e2e/spec.coffee
    describe 'Page', () ->
      it 'should debug properly', () ->
        browser.get '/'

        x = 'There is only X'
        y = 1
        z = ++y
        browser.debugger()
  • Jalankan perintah berikut: protractor debug e2e.conf.coffee

Hasil yang diharapkan:

  • Titik henti ditetapkan di lokasi yang benar
  • Variabel dalam lingkup lokal dapat diakses ketika memasuki mode repl dan mengakses variabel

Hasil:
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],
  ...
}
question

Komentar yang paling membantu

lalu apa sih gunanya mode browser.debugger () di atas? Jika tidak untuk men-debug pengujian Anda ...

Semua 3 komentar

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 ...

Apakah halaman ini membantu?
0 / 5 - 0 peringkat