Cucumber-js: izinkan modul prasetel mentimun di bawah modul-kebutuhan

Dibuat pada 13 Apr 2021  ·  4Komentar  ·  Sumber: cucumber/cucumber-js

Saya mencoba membuat modul eksternal tempat saya dapat mengatur preset untuk menjalankan tes mentimun.
Modul eksternal ini memiliki @cucumber/cucumber sebagai peerDependency, sehingga tidak menginstalnya secara langsung. Oleh karena itu, ketergantungan ini memungkinkan preset untuk mengatur konstruktor World serta menambahkan Given , When , Then ke lingkup global, sehingga kita dapat memiliki definisi langkah bersih.

Semuanya berfungsi ketika saya memiliki flag opsi mentimun-js yang menautkan ke file lokal sebagai cucumber-js --require ./test-preset.setup.js , namun, setelah pindah ke preset yang sama ke modul eksternal dan membutuhkannya sebagai cucumber-js --require-module cucumber-preset-foo , prosesnya diakhiri dengan kesalahan yang sama yang disajikan di #1326.

Saya dapat melihat sesuatu pada kode sumber cli di mana supportCodeLibraryBuilder.reset dipanggil tepat setelah modul eksternal ini diperlukan melalui supportCodeRequiredModules , yang dapat membuat interaksi yang tidak dapat dipertahankan dengan instance mentimun yang sedang berjalan setelah datanya disetel ulang tepat setelah.

https://github.com/cucumber/cucumber-js/blob/e2fd32a4fe411484275307e2a4b59605a8ded165/src/cli/index.ts#L160 -L161

https://github.com/cucumber/cucumber-js/blob/e2fd32a4fe411484275307e2a4b59605a8ded165/src/support_code_library_builder/index.ts#L402 -L417

Mungkin ada alasan khusus untuk desain ini, namun saya ingin memeriksa apakah ada implikasi yang memanggil metode reset sebelum memerlukan modul, sehingga kita dapat menggunakan preset portabel itu? Saya dapat melihat fitur semacam ini menguntungkan beberapa pengguna yang ingin menggunakan preset untuk lingkungan pengembangan tertentu seperti react e2e, misalnya.

node: v15.8.0
@cucumber/cucumber: 7.1.0
os: Linux
bug help wanted accepted

Semua 4 komentar

Hai @zanona

Modul Anda terlihat menarik
Penyelidikan Anda tentang masalah itu juga

Karena Anda sudah memiliki gagasan bagus tentang apa yang terjadi dan bagaimana cara memperbaikinya, apakah Anda pikir Anda dapat membuka PR untuk itu, dan untuk mendukung diskusi seputar itu?

Hmm, saya tidak melihat masalah dengan memindahkan reset ke sebelum modul-wajib. Setelah itu lebih merupakan produk dari apa yang memerlukan-modul digunakan di masa lalu yang memiliki kasus penggunaan utama untuk mengatur transpiler (typescript / babel)

Kedengarannya bagus.
Saya pasti bisa menyiapkan PR, mungkin kita bisa memasukkannya sebagai fitur daripada bug, jadi saya bisa menyiapkan tes yang dicakup agar pengguna bisa membuat preset khusus dan memastikan test runner memahaminya?

Atau, kita bisa menukar dua baris itu dan melihat tes yang gagal?

Bagaimana Anda lebih suka melakukannya?

Mengenai mentimun, ini tetap merupakan bug karena ada kesalahan tak terduga saat mencoba memuat modul secara teratur, yang seharusnya benar-benar berfungsi.

Tetapi Anda masih dapat mengukur PR Anda sebagai peningkatan dengan tes tercakup seperti yang Anda jelaskan - saya sebenarnya menyukai ide itu - yang akan bermanfaat untuk memperbaiki masalah itu juga. Bagaimana menurutmu?

Mengenai kemungkinan untuk menukar dua baris, itu bisa menjadi titik awal yang baik pertama IMO :)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat