Cucumber-js: menerapkan --coba lagi

Dibuat pada 19 Jan 2017  ·  33Komentar  ·  Sumber: cucumber/cucumber-js

alangkah baiknya jika ada fitur yang mencoba ulang rangkaian tes X kali, dan lulus tes jika tes itu lolos pada salah satu proses

help wanted

Komentar yang paling membantu

Sehubungan dengan ketidaksepakatan pribadi dengan fitur ini (argumen ini bisa sia-sia seperti tab vs spasi di dunia teknik), jika Mentimun sebagai spesifikasi perkakas menerapkan ini, kami juga harus mendukung ini dalam versi JS dari alat ini.

Itu juga di dunia nyata dengan rangkaian tes yang luas dan aplikasi kompleks yang tidak mungkin dipertahankan 100% terhadap flakeyness dan karenanya menjadi sangat mahal. Benar-benar Anda dapat memiliki perjalanan rekayasa untuk memperbaikinya, tetapi saya ragu ada banyak perusahaan dengan kemewahan sumber daya untuk mendukung upaya semacam itu dengan ROI yang layak.

Di dunia nyata, kemampuan untuk mencoba kembali tes yang gagal dengan tambahan pelacakan yang baik untuk mengidentifikasi kelemahan untuk tindakan proaktif sangatlah berharga.

Saya akan menghargai jika kami mempertimbangkan kembali keputusan untuk menutup masalah ini dan seperti yang dinyatakan sebelumnya, saya dengan senang hati akan mengerjakan ini dengan beberapa panduan.

Semua 33 komentar

@ericyliu Muncul di mentimun 3. Tidak yakin mengapa Mentimun 2 masih di RC ... sudah keluar selama 2 tahun

@charlierudolph atau siapa pun jika Anda memiliki petunjuk, saya akan dengan senang hati mengambil ini dan mencobanya.

Pendekatan dugaan saya adalah bahwa pada akhir skenario yang berjalan, kami dapat mengetahui apakah itu gagal atau tidak dan menjalankannya kembali (menjaga beberapa status untuk jumlah yang dicoba ulang). Di mana saya bisa terhubung ke ini?

Selain ini, saya berharap pada akhir seluruh proses untuk dapat mengakses daftar semua skenario, berapa kali mereka mencoba kembali dan status akhir mereka sehingga ini dapat a) dicatat dan b) dibuang ke disk jika diinginkan .

Menutup karena saya pribadi tidak ingin menerapkan ini karena saya tidak setuju dengannya. Saya tidak suka menyediakan fitur yang dapat digunakan untuk menangani tes kedipan alih-alih memperbaiki penyebab kedipan.

👏👏👏

@charlierudolph terkadang tidak mungkin untuk menangani tes yang berkedip-kedip. Misalnya, di lingkungan kami, kami memiliki 23 layanan berbeda yang digunakan oleh aplikasi kami, dan karena kami tidak memiliki layanan tersebut, salah satu dari layanan tersebut dapat dinonaktifkan pada waktu tertentu. flag --retry memungkinkan kami untuk menjalankan kembali pengujian sehingga penghentian layanan sementara (saat mereka memulai ulang layanan) tidak menyebabkan rangkaian pengujian kami gagal.

Sehubungan dengan ketidaksepakatan pribadi dengan fitur ini (argumen ini bisa sia-sia seperti tab vs spasi di dunia teknik), jika Mentimun sebagai spesifikasi perkakas menerapkan ini, kami juga harus mendukung ini dalam versi JS dari alat ini.

Itu juga di dunia nyata dengan rangkaian tes yang luas dan aplikasi kompleks yang tidak mungkin dipertahankan 100% terhadap flakeyness dan karenanya menjadi sangat mahal. Benar-benar Anda dapat memiliki perjalanan rekayasa untuk memperbaikinya, tetapi saya ragu ada banyak perusahaan dengan kemewahan sumber daya untuk mendukung upaya semacam itu dengan ROI yang layak.

Di dunia nyata, kemampuan untuk mencoba kembali tes yang gagal dengan tambahan pelacakan yang baik untuk mengidentifikasi kelemahan untuk tindakan proaktif sangatlah berharga.

Saya akan menghargai jika kami mempertimbangkan kembali keputusan untuk menutup masalah ini dan seperti yang dinyatakan sebelumnya, saya dengan senang hati akan mengerjakan ini dengan beberapa panduan.

Untuk menambah cucumber-js already memiliki fungsi rerun yang pada dasarnya hanya coba lagi tetapi kurang efisien karena harus dijalankan sebagai proses terpisah (ini memberikan saya pemahaman yang benar). Mencoba lagi adalah solusi yang jauh lebih baik.

cc @charlierudolph

Itu juga di dunia nyata dengan rangkaian tes yang luas dan aplikasi kompleks yang tidak mungkin dipertahankan 100% terhadap flakeyness dan karenanya menjadi sangat mahal.

Aku benar-benar benci tes flakey. Pada proyek saya saat ini, saya mencoba untuk menjauh dari menjalankan tes flakey pada CI dan menyimpannya untuk menjalankan manual di mana jika sesuatu gagal karena kerapuhan Anda dapat menjalankannya kembali atau memeriksanya secara manual. Ini tergantung pada menemukan sumber kerapuhan Anda dan membatasi jumlah tes yang harus dilakukan untuk mengatasinya.

Untuk menambahkan ke mentimun-js ini sudah memiliki fungsi jalankan kembali yang pada dasarnya hanya coba lagi tetapi kurang efisien karena harus dijalankan sebagai proses terpisah (ini memberikan saya pemahaman yang benar). Mencoba lagi adalah solusi yang jauh lebih baik

Jalankan ulang dibuat sehingga Anda dapat dengan mudah fokus pada tes yang perlu diperbaiki. Ya, Anda dapat menggunakannya untuk mencoba kembali skenario yang gagal.

Saya setuju 100% dengan tes serpihan menjadi sesuatu yang harus dihindari. Meskipun demikian, kerapuhan sebuah tes seringkali merupakan sesuatu yang tidak berada di bawah kendali tim. Inilah situasi saya;

Saya menggunakan Mentimun, Nightwatch, Selenium, dan Browserstack untuk menjalankan tes ujung ke ujung pada aplikasi web. Seringkali, sebuah skenario akan gagal karena kerapuhan yang melekat pada Selenium, Browserstack atau browser yang saya uji. Interaksi yang melibatkan gerakan mouse terkenal karena hal ini. Jarang bagi saya untuk dapat menjalankan semua skenario saya tanpa setidaknya sedikit yang terkelupas.

Saya tidak dapat membuat Selenium, Browserstack, atau browser tidak terlalu rapuh, itu hanya sifat alat yang harus saya gunakan. Solusi yang saya butuhkan adalah dapat mencoba kembali skenario saya beberapa kali jika gagal.

Saya pikir kita harus mempertimbangkan kembali ini. Mentimun-Ruby memilikinya sekarang.

Sepakat. Berikut kode untuk implementasi Ruby. Bisa berguna untuk implementasi JS. https://github.com/cucumber/cucumber-ruby/pull/920/files

Hai semuanya, apakah fitur 'coba lagi' sekarang tersedia di Cucumber-JS? Sebanyak yang saya setuju tes yang tidak stabil harus diperbaiki, pengalaman menunjukkan itu tidak selalu mungkin ketika bekerja di proyek besar dengan banyak ketergantungan eksternal yang terlibat.
Pada akhirnya, jika kasus uji yang tidak stabil seperti itu tidak dapat dicakup oleh otomatisasi karena logika percobaan ulang yang hilang, maka itu harus diuji secara manual.
Saya percaya menggunakan logika coba lagi harus dibiarkan sebagai pilihan bagi pengguna Mentimun.
Saya mengetahui fitur 'jalankan ulang' tetapi menggunakannya menambah kerumitan ekstra karena tes harus dijalankan kembali secara terpisah agar pelari Mentimun secara transparan melakukannya untuk Anda.

Hai @charlierudolph dan @aslakhellesoy. Ada kemajuan dengan fitur ini?

Tidak ada yang mengerjakannya sepengetahuan saya. Jika ada yang memberikan permintaan tarik, saya akan mempertimbangkan untuk menambahkannya.

Hai @aslakhellesoy terima kasih telah membalas dengan sangat cepat. Ini adalah sesuatu yang benar-benar kami butuhkan saat ini karena salah satu perangkat yang perlu kami otomatisasi agak tidak stabil dan dalam kasus seperti itu, tidak ada alternatif yang benar-benar praktis selain menjalankan kembali skenario yang gagal.
Ide saya adalah menggunakan tag per skenario untuk menentukan jumlah percobaan ulang tetapi setidaknya sebagai implementasi awal yang bisa berupa parameter baris perintah.
Saya akan mencoba melihat kodenya dalam beberapa hari ke depan.

Itu bagus! Silakan coba membuatnya berperilaku dengan cara yang sama seperti di Mentimun-Ruby. Jika menyimpang dari itu kami tidak dapat menggabungkannya, karena konsolidasi/konsistensi adalah sesuatu yang kami perjuangkan.

Hai @aslakhellesoy , Saya telah menerapkan fungsionalitas coba ulang dasar sebagai opsi --retry CLI. Saya telah mengujinya di tempat kerja dengan proyek kami dan itu berfungsi dengan baik. Saya memerlukan izin untuk mendorong cabang kerja saya dan membuka PR untuk membahas implementasinya. Beri tahu saya, terima kasih.

@hurrikam Kerja bagus..
Saya juga menantikan untuk menggunakan ini. Saya menggunakan nightwatch-mentimun dan mereka menunggu ini diperbaiki di mentimun js. Ref # https://github.com/mucsi96/nightwatch-cucumber/issues/213

@charlierudolph bisa tolong bantu dengan ini? Saya tidak dapat mengirimkan PR saya saat ini.

@hurrikam Anda dapat membuat garpu dan Dorong kode Anda di sana lalu kirimkan PR dari garpu Anda ke repo ini. https://help.github.com/articles/fork-a-repo/

@charlierudolph tolong lihat PR-1114
Seperti yang disebutkan dalam judul, ini adalah implementasi minimalis (sangat sedikit perubahan kode) untuk membuat fitur berfungsi tanpa merusak format dan laporan yang ada.

Saya membahas beberapa percakapan lama di repo Cucumber Ruby sehubungan dengan apakah setiap uji coba yang tidak stabil harus dilaporkan, mungkin memperkenalkan status hasil 'serpihan' untuk proses sebelumnya. Tidak yakin apakah itu dilakukan dan lagi, penarikannya adalah memasukkan semua upaya kasus uji yang sama ke dalam log.

Mari kita bahas.

@hurrikam tim saya telah mengambil garpu PR sehingga kami bisa mendapatkan fungsi ini. Ini bekerja sangat baik sejauh ini. Saya harap Anda bisa segera menggabungkannya karena bendera ini sangat membantu!

@Nick-Lucas Itu luar biasa - Apakah Anda memilikinya?

@thomaswmanion ya kami aktif menggunakan fitur ini. Kami memiliki backend yang terkadang bisa sedikit tersendat saat melewati antrian pekerjaan, jadi ini adalah penyelamat.

Bagi siapa pun yang ingin menggunakan PR, Anda dapat mengarahkan package.json Anda ke fork saya (atau fork it off me):

  "dependencies": {
    "cucumber": "https://github.com/Nick-Lucas/cucumber-js.git#feature/issue-727-retry",
  },

Mentimun sudah dibuat sebelumnya sehingga bisa dipasang ke node_modules. Seharusnya tidak perlu dikatakan bahwa pasti tidak ada garansi atau dukungan karena fitur ini bahkan belum pra-alfa

EDIT:

Saya sekarang telah meninggalkan perusahaan saya dan menyerahkan garpu ke github mereka: https://github.com/wonderbill/cucumber-js.git#feature/issue -727-retry

Bagus!!!! Terima kasih @Nick-Lucas - hargai pengertian bahwa lingkungan sistem dapat bersifat serpihan!

Ini perlu digabung menjadi Master, ini tidak ditutup.

@thomaswmanion ya kami aktif menggunakan fitur ini. Kami memiliki backend yang terkadang bisa sedikit tersendat saat melewati antrian pekerjaan, jadi ini adalah penyelamat.

Bagi siapa pun yang ingin menggunakan PR, Anda dapat mengarahkan package.json Anda ke fork saya (atau fork it off me):

  "dependencies": {
    "cucumber": "https://github.com/Nick-Lucas/cucumber-js.git#feature/issue-727-retry",
  },

Mentimun sudah dibuat sebelumnya sehingga bisa dipasang ke node_modules. Seharusnya tidak perlu dikatakan bahwa _pasti tidak ada garansi atau dukungan_ karena fitur tersebut bahkan belum pra-alfa

EDIT:

Saya sekarang telah meninggalkan perusahaan saya dan menyerahkan garpu ke github mereka: https://github.com/wonderbill/cucumber-js.git#feature/issue -727-retry

Bagaimana saya bisa menjalankan fitur coba lagi saat menjalankan tes?

@ricardgarcia cukup gunakan opsi --retry lihat https://github.com/owncloud/phoenix/pull/1207/files
Kami menggunakan cabang dari PR saya di sini https://github.com/cucumber/cucumber-js/pull/1205 hingga digabungkan semoga suatu hari nanti

Hai @individu-it , terima kasih banyak atas jawabannya. Haruskah ini berfungsi jika saya menggunakan webdriverIO untuk menjalankan tes saya pada mentimun-js?
Saya sudah mencoba perintah "--retry 1" tetapi tidak ada percobaan ulang yang dilakukan.

@ricardgarcia Seperti yang dijelaskan dalam https://github.com/cucumber/cucumber-js/pull/1205 , untuk menggunakan fungsi ini Anda dapat menggunakan

"cucumber": "cucumber/cucumber-js#issue-727-retry"

karena perubahannya belum digabungkan di repo mentimun utama.

Ya @jain-neeeraj Saya telah menggunakan versi ini di package.json dan tidak berhasil, tetapi seperti yang saya sebutkan saya menjalankan tes menggunakan mentimun di webdriverIO, jadi kerangka kerja "wdio-cucumber-framework" berikut. Haruskah itu bekerja entah bagaimana? Bagaimana cara menjalankan tes untuk mencoba lagi jika saya menggunakan kerangka kerja mentimun-js?

@ricardgarcia mari berkolaborasi di gitter https://gitter.im/cucumber/cucumber-js , saya harus dapat membantu Anda dalam menyelesaikan masalah ini.

@charlierudolph ada kemungkinan ini bisa digabung menjadi master?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat