Cucumber-js: Apa yang terjadi dengan parameter "cucumberOpts"? Apakah itu tidak lagi didukung?

Dibuat pada 6 Jun 2017  ·  5Komentar  ·  Sumber: cucumber/cucumber-js

Masalah ini merupakan kelanjutan dari https://github.com/angular/protractor/issues/4311 . Di mana saya membahas perubahan sintaks tentang cara menggunakan busur derajat untuk menjalankan skrip Cucumberjs.

Seperti yang diminta oleh @wswebcreation https://github.com/wswebcreation , saya menutup masalah lain itu dan membuka yang baru di sini.

Jadi, komentar terakhir saya adalah ini....

Catatan terakhir yang saya miliki tentang eksekusi yang berhasil adalah pada 12 Mei 2017, 14:03. Tepatnya tanggal dalam dokumen Anda.

Contoh Anda tentang tag sangat sederhana ... lalu bagaimana saya harus memanggil 3 tag, dua yang harus dijalankan dan satu yang diabaikan. Sebelum 12 Mei, ini berfungsi dengan baik, tetapi sekarang tidak:

protractor ./FM_IntTest_UI_conf.js --disableChecks [email protected] --params.login.passw=mypassword --cucumberOpts.tags ~<strong i="13">@ignore</strong> --cucumberOpts.tags <strong i="14">@smoke</strong>,@sprint

Dokumen Anda mengatakan sekarang seharusnya seperti ini, tetapi tidak berfungsi, mengembalikan pesan kesalahan yang sama yang saya kirimkan dengan "tiket".

protractor ./FM_IntTest_UI_conf.js --disableChecks [email protected] --params.login.passw=mypassword --cucumberOpts.tags '<strong i="18">@smoke</strong> or <strong i="19">@rt</strong>' --cucumberOpts.tags 'not <strong i="20">@ignore</strong>'

Kesalahan: Kesalahan: lebih dari satu file konfigurasi ditentukan
di C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\built\cli.js:155:15
di C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\node_modules\optimist\index.js:307:21
di Array.forEach (asli)
di parseArgs (C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\node_modules\optimist\index.js:305:16)
di Object.Argv.self.parse (C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\node_modules\optimist\index.js:140:16)
di Obyek. (C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\built\cli.js:158:21)
di Module._compile (module.js:571:32)
di Object.Module._extensions..js (module.js:580:10)
di Module.load (module.js:488:32)
di tryModuleLoad (module.js:447:12)

Saya dapat melihat dalam dokumen Mentimun yang juga sintaks pengkodean untuk definisi langkah berubah? Mengapa membuatnya lebih rumit sekarang? Karena dengan sintaks baru, saya harus mengelompokkan langkah demi skenario. Tetapi ada beberapa langkah yang diulang dalam beberapa skenario, sehingga mengulangi kode pada setiap skenario? Saya akan berakhir dengan redundansi dalam kode saya. Mengapa?

Berikut cuplikan dari apa yang saya miliki SEKARANG di file test.spec.js saya:

this.Given('I am testing my Widget Application', function (callback) {
    edirp.edirejectwidgetlink.click().then(function(){ 
        callback();
    }).catch(function(reason) {
        console.log('ERROR: Widget button not found');
        callback(reason);
    });
});

this.When('There are records in the Widget List', function() {
    edirp.edigetrow.count().then(function(cnt){
        if(cnt>0){
            return recordsFound = cnt;
        }else{
            return recordsFound = 0;
        }
    });
});


this.Then('Header name of the Widget List is '(.+)'', function(header, callback) {
    expect(po.headertext.getText()).to.eventually.equal(header).then(function(){ 
        callback();
    }).catch(function(reason) {
        console.log('Warning: Incorrect Text.');
        callback(reason);
    });
});

Berikut cuplikan dari apa yang diusulkan sebagai "pembaruan"... bagi saya adalah DOWNGRADE:

var seleniumWebdriver = require('selenium-webdriver');
var {defineSupportCode} = require('cucumber');

defineSupportCode(function({Given, When, Then}) {
  Given('I am testing my Widget Application', function (callback) {
    edirp.edirejectwidgetlink.click().then(function(){ 
        callback();
    }).catch(function(reason) {
        console.log('ERROR: Widget button not found');
        callback(reason);
    });

  When('There are records in the Widget List', function() {
    edirp.edigetrow.count().then(function(cnt){
        if(cnt>0){
            return recordsFound = cnt;
        }else{
            return recordsFound = 0;
        }
    });
  Then('Header name of the Widget List is '(.+)'', function(header, callback) {
    expect(po.headertext.getText()).to.eventually.equal(header).then(function(){ 
        callback();
    }).catch(function(reason) {
        console.log('Warning: Incorrect Text.');
        callback(reason);
    });
});

Jika skenario memiliki beberapa Diberikan, Kapan, Lalu... apakah itu harus disebutkan di sini, seperti ini?:
defineSupportCode(function({Diberikan, Dan, Dan, Kapan, Dan, Dan, Lalu, Dan, Dan, Dan}) {

Jika itu benar... Jadi sekarang, jika saya ingin menggunakan lagi langkah "Ketika Ada catatan di EDI-Rejects Widget" dalam skenario lain di fitur saya, apakah saya perlu mengkodekan semua fungsi lagi?

Yang saya butuhkan hanyalah jawaban dengan argumen. Jangan menganggapnya pribadi.

Semua 5 komentar

Jika skenario memiliki beberapa Diberikan, Kapan, Lalu... apakah itu harus disebutkan di sini, seperti ini?:
defineSupportCode(function({Diberikan, Dan, Dan, Kapan, Dan, Dan, Lalu, Dan, Dan, Dan}) {

Tidak. Given , When , dan Then adalah fungsi yang dapat Anda panggil beberapa kali (mirip dengan this.Given , dll dari 1.x). And bukan fungsi. Anda dapat melihat semua fungsi yang dilewatkan oleh defineSupportCode di Referensi API yang ditautkan dari README.md

Saya dapat melihat dalam dokumen Mentimun yang juga sintaks pengkodean untuk definisi langkah berubah?

Lihat https://github.com/cucumber/cucumber-js/issues/679

Mengapa membuatnya lebih rumit sekarang? Karena dengan sintaks baru, saya harus mengelompokkan langkah demi skenario.

Itu tidak benar

Terima kasih, saya akan memeriksanya!

@charlierudolph Tnx untuk penjelasannya!

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