Cucumber-js: Harap tambahkan dukungan untuk TypeScript

Dibuat pada 13 Mei 2015  ·  33Komentar  ·  Sumber: cucumber/cucumber-js

Saya membuat lib dengan TypeScript dan pengujian saya juga ditulis dalam TypeScript. Saya sangat ingin mencoba mentimun.js dan membuat file definisi langkah, dengan TypeScript. Jadi Anda mendukung coffeescript dan js, .ts juga akan menyenangkan.

Salam

Kris

Komentar yang paling membantu

@jbpros sejak readme telah diperbarui, dan ini terlihat jelas dalam hasil untuk "cucumber typescript" , kutipan:

Transpiler

-Definisi langkah dan file dukungan dapat ditulis dalam bahasa lain yang diubah menjadi javascript.
-Ini dilakukan dengan opsi CLI --compiler <file_extension>:<module_name> . Untuk CoffeeScript 1.10.0,
-ini dilakukan dengan --compiler coffee:coffee-script/register .
Definisi langkah dan file dukungan dapat ditulis dalam bahasa lain yang diubah menjadi javascript. Ini dilakukan dengan opsi CLI --compiler <file_extension>:<module_name> .

KopiScript

Instal paket NPM skrip kopi dan aktifkan Mentimun dengan --compiler coffee:coffee-script/register .

TypeScript

Instal paket NPM TypeScript-node dan aktifkan Cucumber dengan --compiler ts:typescript-node/register .

Seperti biasa, semua file definisi dan dukungan langkah Anda harus mengekspor fungsi untuk dijalankan oleh Mentimun. Ini adalah bagaimana hal itu dilakukan di TS:

declare var module: any;
module.exports = function () {
 this.Given(/.*/, function () {
   // ...
 })
}

PogoScript

Instal paket pogo NPM dan aktifkan Cucumber dengan --compiler pogo:pogo .

Semua 33 komentar

Mengapa Anda tidak mengirim permintaan tarik @Chris2011

Saya hanya akan menjadi pelanggan proyek ini, ketika saya melakukan setiap permintaan tarik dari setiap barang yang saya gunakan dan ada beberapa yang hilang, daripada saya dapat membuatnya sendiri. Ini hanya permintaan fitur. Jika seseorang memiliki waktu dan ingin melakukannya, mengapa tidak. Saya tidak, karena saya tidak punya waktu, saya memiliki pekerjaan normal dan proyek lain yang sama dan tidak ingin menjadi kontributor pada setiap proyek yang saya gunakan. Maaf untuk kata-kata kasar mungkin tapi bagi saya jelas tidak mungkin menjadi kontributor di setiap proyek, apa yang saya gunakan. Saya harus memahami sumbernya dan sebagainya.

Saya mengerti @Chris2011. Mungkin suatu hari seseorang akan memutuskan untuk menghabiskan waktu menerapkan ini karena mereka ingin membantu Anda, atau hanya untuk bersenang-senang.

Skenario yang lebih realistis adalah bahwa permintaan fitur ini tetap terbuka sampai seseorang cukup membutuhkannya untuk bersedia meluangkan waktu dan tenaga untuk mengimplementasikannya dan mengirimkan PR.

Mungkin. Thx atas pendapatnya. Dalam perspektif saya, itu hanya logika untuk meminta fitur ini karena TS akan lebih populer selama 1 atau 2 tahun. Dan ketika Anda atau siapa pun memutuskan untuk menerapkan coffeescript juga, mengapa tidak TypeScript juga?

Terima kasih banyak. Kita akan lihat apa yang terjadi...

Secara umum - sama seperti formatter - Saya ingin memiliki dukungan bahasa/dialek untuk menjadi plugin pihak ke-3 alih-alih bagian dari inti (termasuk CoffeeScript dan PogoScript saat ini).

TS +1

+1

Suka, tolong lakukan beberapa saat!!!

:+1:

Tidak ada jumlah +1 atau :+1: yang akan membuat ini terjadi. Seseorang harus mengirimkan permintaan tarik.

:+1: @aslakhellesoy tepat

:8ball: @samccone

@jbpros @aslakhellesoy satu-satunya hal yang harus dilakukan untuk mendukung bahasa pihak ke-3 adalah menerapkan cara untuk memodifikasi:

SupportCodePathExpander.SUPPORT_CODE_FILES_IN_DIR_REGEXP = /\.(js|coffee|pogo)$/;

Dan siapa pun dapat mendaftarkan transpiler apa pun di support/env.js misalnya
mungkin regex ini harus dihapus sama sekali?

Saya senang melihat ini. Saya dapat menemukan file fitur coffeeScript tetapi tidak dapat menemukan di mana definisi langkah diterapkan, tolong bisakah seseorang memberi saya beberapa petunjuk tentang apa yang perlu dilakukan?

@SeanFarrow Saya sudah melakukannya secara lokal. Anda hanya perlu memodifikasi /lib/cucumber//cli/argument_parser/support_code_path_expander.js:12 dan kemudian menambahkan transpiler melalui memerlukan hook

Apakah Anda ingin mengirim pr?

Dari: Aleh Kashnikau [mailto:[email protected]]
Dikirim: 16 Agustus 2015 19:15
Kepada: mentimun/mentimun-js [email protected]
Cc: Sean Farrow sean. [email protected]
Subjek: Re: [cucumber-js] Tolong tambahkan dukungan untuk TypeScript (#335)

@SeanFa rrowhttps://github.com/SeanFarrow Saya sudah melakukannya secara lokal. Anda hanya perlu memodifikasi /lib/cucumber//cli/argument_parser/support_code_path_expander.js:12 dan kemudian menambahkan transpiler apa pun melalui memerlukan kait


Balas email ini secara langsung atau lihat di Gi tHubhttps://github.com/cucumber/cucumber-js/issues/335#issuecomment -131598410.

@mkusher ada lebih dari itu. Agar lengkap, cuplikan definisi langkah juga harus tersedia dalam bahasa tambahan (yang saat ini tidak dilakukan untuk PogoScript), lihat tanda CLI --coffee .

Saya benar-benar ingin ini dilakukan melalui sistem plugin/transpiler dan menghapus semua dialek dari inti (termasuk skrip kopi).

Saya tidak mengerti mengapa dukungan khusus bahasa diperlukan? Tidakkah Anda hanya mengubah definisi langkah ke JavaScript sebagai bagian dari proses pembuatan Anda?

398 harus membuat mendukung transpiler apa pun menjadi sederhana

Yap, #398 akan memperbaiki ini.

@henrify satu-satunya hal yang "perlu" ditambahkan ke Mentimun adalah dukungan cuplikan definisi langkah untuk bahasa lain. Saat ini mereka berada di Vanilla JS secara default dan dapat ditampilkan dalam CS dengan flag CLI --coffee .

Kami mungkin hanya membuang cuplikan non-JS sama sekali (termasuk CS?). Pikiran?

398 telah digabungkan dan akan tersedia pada rilis berikutnya. Dukungan TypeScript didokumentasikan dalam README .

@jbpros sejak readme telah diperbarui, dan ini terlihat jelas dalam hasil untuk "cucumber typescript" , kutipan:

Transpiler

-Definisi langkah dan file dukungan dapat ditulis dalam bahasa lain yang diubah menjadi javascript.
-Ini dilakukan dengan opsi CLI --compiler <file_extension>:<module_name> . Untuk CoffeeScript 1.10.0,
-ini dilakukan dengan --compiler coffee:coffee-script/register .
Definisi langkah dan file dukungan dapat ditulis dalam bahasa lain yang diubah menjadi javascript. Ini dilakukan dengan opsi CLI --compiler <file_extension>:<module_name> .

KopiScript

Instal paket NPM skrip kopi dan aktifkan Mentimun dengan --compiler coffee:coffee-script/register .

TypeScript

Instal paket NPM TypeScript-node dan aktifkan Cucumber dengan --compiler ts:typescript-node/register .

Seperti biasa, semua file definisi dan dukungan langkah Anda harus mengekspor fungsi untuk dijalankan oleh Mentimun. Ini adalah bagaimana hal itu dilakukan di TS:

declare var module: any;
module.exports = function () {
 this.Given(/.*/, function () {
   // ...
 })
}

PogoScript

Instal paket pogo NPM dan aktifkan Cucumber dengan --compiler pogo:pogo .

Apakah benar-benar diperlukan untuk menggunakan TypeScript-node? Apakah mungkin menggunakan tsc resmi yang didukung alih-alih Typescript-node? Saya tidak tahu perbedaannya tetapi tsc resmi didukung dari Microsoft.

@Chris2011 ts-node hanyalah pengait register untuk node.js yang akan menjalankan kompilasi melalui tsc

Oke terima kasih.

@JoshuaKGoldberg dari mana kutipannya? Pencarian saya gagal menemukannya.

Contoh untuk memandu Anda dalam mentimun dengan penggunaan TypeScript:
https://github.com/AbraaoAlves/cucumber-protractor-typescript-boilerplate

Terima kasih @AbraaoAlves untuk sampelnya.
Sayangnya, ini hanya bekerja dengan mentimunjs 1. Lapisan kerangka busur derajat-mentimun tidak kompatibel dengan mentimun2 rcs.

cara melampirkan screenshot di laporan mentimun. Saya menggunakan bahasa TypeScript. Tolong siapa pun membantu saya.

Harap konfirmasi apakah akan ada masalah kompatibilitas mentimun+Protractor+TypeScript di masa mendatang...karena kami berencana menggunakan kombinasi tersebut untuk implementasi kami..

@Rajazpandi
Lakukan sesuatu seperti ini di After

driver.takeScreenshot().then(data => {
        attach(new Buffer(data, 'base64'), 'image/png');
      }).catch(error => {
        info(error);
        throw error;
      });

Utas ini telah dikunci secara otomatis karena tidak ada aktivitas terbaru setelah ditutup. Silakan buka edisi baru untuk bug terkait.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat