<p>mentimun-js tidak menemukan definisi langkah</p>

Dibuat pada 11 Jan 2017  ·  48Komentar  ·  Sumber: cucumber/cucumber-js

Hai, saya seorang pemula yang telah mencoba berjam-jam untuk mendapatkan mentimun-js untuk menemukan definisi langkah saya. Saya telah datang dengan contoh sederhana ini.

Dalam fitur/foo.feature:

Feature: Foo
  Scenario: Bar
    Given FooBar

Dalam features/step_definitions/step_defs.js:

var {defineSupportCode} = require('cucumber');

defineSupportCode(function({Given}) {
    Given('FooBar', function () {
      return 'pending';
    });    
});

Saya mendapatkan hasil ini:

Feature: Foo

  Scenario: Bar
  ? Given FooBar

Warnings:

1) Scenario: Bar - features\foo.feature:2
   Step: Given FooBar - features\foo.feature:3
   Message:
     Undefined. Implement with the following snippet:

       Given('FooBar', function (callback) {
         // Write code here that turns the phrase above into concrete actions
         callback(null, 'pending');
       });

1 scenario (1 undefined)
1 step (1 undefined)
0m00.000s
help wanted

Komentar yang paling membantu

Baik. Saya percaya saya menemukan ini.

Saat menggunakan instalasi global mentimun untuk menjalankan tes fitur, Anda masih menentukan kode dukungan dengan meminta instalasi lokal mentimun. Fakta bahwa ini adalah dua contoh yang berbeda tidak menghasilkan definisi langkah yang dimuat.

Apakah ada alasan Anda tidak dapat menggunakan instalasi lokal untuk menjalankan perintah? Saya melakukan ini di mac dengan menambahkan "./node_modules/.bin" ke jalur saya.

Saya tidak suka ide mencoba membuat ini berfungsi dengan menginstal global mencoba meminta instalasi lokal untuk mendapatkan definisi langkah. Saya juga tidak menyukai instalasi global karena itu membuat Anda harus menentukan hal-hal seperti mengkompilasi modul dengan jalur absolutnya.

Jika ini memungkinkan di windows, saya lebih suka memperbarui dokumentasi untuk menyebutkan bahwa ini tidak dapat digunakan sebagai instalasi global.

Semua 48 komentar

Saya tahu bahwa mentimun-js menemukan file definisi langkah, karena ketika saya menyuntikkan kesalahan sintaks ke dalamnya, mentimun-js melaporkan kesalahan dengan benar.

Versi mentimun-js apa yang Anda gunakan?

Dikatakan 2.0.0-rc.6

Juga seorang pemula dan memiliki masalah yang sama menjalankan versi yang sama dari mentimun.js
Saya mengikuti tutorial lain tetapi macet pada saat ini.

/features/add-item.feature

Feature: Shopper can add an item to their Grocery List
  As a grocery shopper
  I want to add an item to my grocery list
  So that I can remember to buy that item at the grocery store

  Scenario: Item added to grocery list
    Given I have an empty grocery list
    When I add an item to the list
    Then The grocery list contains a single item

  Scenario: Item accessible from grocery list
    Given I have an empty grocery list
    When I add an item to the list
    Then I can access that item from the grocery list`

/features/step_definitions/add-item.steps.js
'use strict';

module.exports = function() {

    Given('I have an empty grocery list', function (callback) {
         // Write code here that turns the phrase above into concrete actions
         callback(null, 'pending');
       });


    When('I add an item to the list', function (callback) {
         // Write code here that turns the phrase above into concrete actions
         callback(null, 'pending');
       });

    Then('The grocery list contains a single item', function (callback) {
         // Write code here that turns the phrase above into concrete actions
         callback(null, 'pending');
       });

    Then('I can access that item from the grocery list', function (callback) {
         // Write code here that turns the phrase above into concrete actions
         callback(null, 'pending');
       });

}

$ node_modules/.bin/cucumber-js kembali

Feature: Shopper can add an item to their Grocery List

    As a grocery shopper
    I want to add an item to my grocery list
    So that I can remember to buy that item at the grocery store

  Scenario: Item added to grocery list
  ? Given I have an empty grocery list
  ? When I add an item to the list
  ? Then The grocery list contains a single item

  Scenario: Item accessible from grocery list
  ? Given I have an empty grocery list
  ? When I add an item to the list
  ? Then I can access that item from the grocery list

Warnings:

1) Scenario: Item added to grocery list - features/add-item.feature:6
   Step: Given I have an empty grocery list - features/add-item.feature:7
   Message:
     Undefined. Implement with the following snippet:

       Given('I have an empty grocery list', function (callback) {
         // Write code here that turns the phrase above into concrete actions
         callback(null, 'pending');
       });

2) Scenario: Item added to grocery list - features/add-item.feature:6
   Step: When I add an item to the list - features/add-item.feature:8
   Message:
     Undefined. Implement with the following snippet:

       When('I add an item to the list', function (callback) {
         // Write code here that turns the phrase above into concrete actions
         callback(null, 'pending');
       });

3) Scenario: Item added to grocery list - features/add-item.feature:6
   Step: Then The grocery list contains a single item - features/add-item.feature:9
   Message:
     Undefined. Implement with the following snippet:

       Then('The grocery list contains a single item', function (callback) {
         // Write code here that turns the phrase above into concrete actions
         callback(null, 'pending');
       });

4) Scenario: Item accessible from grocery list - features/add-item.feature:11
   Step: Given I have an empty grocery list - features/add-item.feature:12
   Message:
     Undefined. Implement with the following snippet:

       Given('I have an empty grocery list', function (callback) {
         // Write code here that turns the phrase above into concrete actions
         callback(null, 'pending');
       });

5) Scenario: Item accessible from grocery list - features/add-item.feature:11
   Step: When I add an item to the list - features/add-item.feature:13
   Message:
     Undefined. Implement with the following snippet:

       When('I add an item to the list', function (callback) {
         // Write code here that turns the phrase above into concrete actions
         callback(null, 'pending');
       });

6) Scenario: Item accessible from grocery list - features/add-item.feature:11
   Step: Then I can access that item from the grocery list - features/add-item.feature:14
   Message:
     Undefined. Implement with the following snippet:

       Then('I can access that item from the grocery list', function (callback) {
         // Write code here that turns the phrase above into concrete actions
         callback(null, 'pending');
       });

2 scenarios (2 undefined)
6 steps (6 undefined)
0m00.000s

File world.js belum disertakan pada saat ini.

@dunlop-ben silakan lihat changelog tentang perbedaan antara 1.0 dan kandidat rilis 2.0. Cara mendefinisikan langkah berubah, dan contoh Anda tampaknya menggunakan sintaks 1.0.

@jeffmath tidak ada yang salah bagi saya. Kami memiliki tes fitur yang memverifikasi sesuatu seperti contoh sederhana Anda berfungsi. Mereproduksi di mac, ini berfungsi seperti yang diharapkan untuk saya. Versi simpul apa yang Anda jalankan? Dan dari jalur tampaknya Anda berada di mesin windows, apakah itu benar?

@charlierudolph - terima kasih. Saya telah melihat ini dan mencoba beberapa contoh berbeda dengan hasil yang serupa. Saya juga telah mencoba menggunakan fitur dan definisi langkah di sini: http://cucumber.github.io/cucumber-js/

Saya merasa seolah-olah saya kehilangan satu langkah dan/atau file. Jika ada di mana saja Anda dapat mengarahkan saya ke itu akan sangat bagus. Saya kurang beruntung membaca dokumentasi di Github.

@charlierudolph Node 6.4.0 di Windows 7

@charlierudolph saya punya masalah yang sama. Saya persis mengikuti https://github.com/cucumber/cucumber-js/blob/master/docs/nodejs_example.md dan masalah masih terjadi.

Pengaturan saya adalah

  • KODE 7.4.0
  • OS: Windows 10
  • Mentimun 2.0.0 -rc.6

@jeffmath @TheAdamW maaf tapi saya tidak punya mesin windows dan karenanya tidak bisa melacaknya. Kami menggunakan appveyor untuk menjalankan pengujian kami di mesin windows dan saya tidak tahu apa bedanya. Bisakah salah satu dari Anda mencoba menggali ini? Saya senang memberikan bantuan apa pun yang saya bisa

Bagi saya ini berfungsi jika saya menulis ./node_modules/.bin/cucumberjs tetapi tidak jika saya hanya menulis cucumberjs diinstal secara global (versi yang sama 2.0.0-rc.6 ).

Kesalahan yang sama di sini: tidak ada cara bagi mentimun untuk menemukan definisi langkah. Memiliki struktur folder yang sama berfungsi di linux.

  • NOD. 4.4.0 & 4.6
  • OS: Windows 10
  • Mentimun 2.0.0 -rc.6

Apakah ada cara untuk memaksa jalur definisi langkah/folder/pola?
BTW @MartinDelille s trik tidak bekerja untuk saya.

Saya tiba-tiba menghadapi masalah yang sama, mentimun baik-baik saja menjalankan skrip sampai hari ini pagi. Saya tidak tahu apa yang salah dengan itu.

Saya menjalankan fitur dengan klik kanan pada tambang ruby ​​​​dan dari baris perintah menggunakan perintah cucumber -r features/chatstep.feature Saya mendapatkan hasil yang sama.

Ada yang bisa tolong

Mengingat(/^Saya meluncurkan "([^"]*)"$/) lakukan |arg1|
tertunda # Tulis kode di sini yang mengubah frasa di atas menjadi tindakan nyata
akhir

Saya harus menurunkan versi ke 1.3.1 untuk membuatnya berfungsi.
Itu bahkan tidak berfungsi di centos.

Pada 25 Jan 2017 21:32, "Mrityunjeyan S" [email protected] menulis:

Saya tiba-tiba menghadapi masalah yang sama, mentimun itu baik-baik saja
mengeksekusi skrip sampai hari ini pagi. Saya tidak tahu apa yang salah
dengan itu.

Saya menjalankan fitur dengan klik kanan pada tambang ruby ​​​​dan dari baris perintah menggunakan
perintah mentimun -r features/chatstep.feature Saya mendapatkan hasil yang sama.

Ada yang bisa tolong


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/cucumber/cucumber-js/issues/718#issuecomment-275224435 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/ALjDKMNdggk1Gh-x_q3KRuvlpN5f_0cOks5rV7E9gaJpZM4LhJZO
.

@jbgraug : apa yang kamu

Saya mencoba dengan RC 2.0.6 & RC 2.0.0. Saya tidak bisa membuatnya bekerja di linux atau
windows sebagai mentimun tidak dapat menemukan definisi langkah, bahkan dengan
opsi -r.

Pada Kam, 26 Jan 2017 pukul 06:18, Mrityunjeyan S [email protected]
menulis:

@jbgraug https://github.com/jbgraug : apa yang kamu turunkan ? Apa itu Ur
versi sebelumnya sebelum downgrade


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/cucumber/cucumber-js/issues/718#issuecomment-275310070 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/ALjDKGbyYXvsjlLv-dlz6bnHMfPK7t05ks5rWCypgaJpZM4LhJZO
.

@jbgraug Saya kira mentimun telah menghentikan gherkin dibundel dengannya dari versi 2.0? Saat ini saya menginstal 1.3.14, dan dikatakan fetching gherkin yang tidak pernah saya perhatikan saat menginstal versi di atas 2.0

@reach2jeyan berdasarkan baris perintah dan cuplikan pengujian Anda, saya yakin Anda berbicara tentang mentimun-ruby . Sementara kedua proyek ini terkait dalam mencoba menerapkan kerangka mentimun untuk bahasa masing-masing, mereka memiliki sejumlah perbedaan.

@charlierudolph Terima kasih telah masuk.

Ini bekerja sekarang!

@charlierudolph persis seperti yang dikatakan @MartinDelille , berfungsi dengan baik melalui npm -S dengan ./node_modules/.bin/cucumber.js , tetapi tidak melalui npm -g dengan /usr/local/bin/cucumber.js , ia menemukan dan menjalankan langkah-langkahnya, tetapi entah bagaimana melupakan mereka setelahnya.

macOS + Node.js 7.5.0 + Mentimun.js 2.0.0-rc.7
Label windows specific menyesatkan

@kozhevnikov terima kasih atas pembaruannya. Semua laporan sejauh ini ada di windows (dan saya tidak dapat membuat ulang di mac lokal saya dengan instalasi lokal) Sulit membayangkan instalasi global entah bagaimana berbeda tetapi setidaknya sekarang saya dapat menyelidiki.

saya mendapatkan masalah yang sama di windows menggunakan command prompt melalui cygwin mungkin itu masalahnya? saya bahkan menyalin kode langsung dari contoh.

Fitur: Matematika sederhana
Untuk mengerjakan matematika
Sebagai pengembang
Saya ingin menambah variabel

Skenario: matematika mudah
Diberikan variabel yang disetel ke 1
Ketika saya menambah variabel sebesar 1
Maka variabel harus mengandung 2

Garis Besar Skenario: hal-hal yang jauh lebih kompleks
Diberikan satu set variabel ke

Examples:
  | var | increment | result |
  | 100 |         5 |    105 |
  |  99 |      1234 |   1333 |
  |  12 |         5 |     18 |

Mentimun.defineSupportCode(fungsi(konteks) {
var setWorldConstructor = context.setWorldConstructor;
var Diberikan = konteks. Diberikan
var Kapan = konteks.Kapan
var Kemudian = konteks. Kemudian

///// Duniamu /////
//
// Panggil 'setWorldConstructor' dengan dunia kustom Anda (opsional)
//

var CustomWorld = function() {};

CustomWorld.prototype.variable = 0;

CustomWorld.prototype.setTo = fungsi(angka) {
this.variable = parseInt(angka);
};

CustomWorld.prototype.incrementBy = function(number) {
this.variabel += parseInt(angka);
};

setWorldConstructor(Dunia Kustom);

///// Definisi langkah Anda /////
//
// gunakan 'Diberikan', 'Kapan' dan 'Kemudian' untuk mendeklarasikan definisi langkah
//

Mengingat(/^a variabel diatur ke (\d+)$/, fungsi(angka) {
this.setTo(angka);
});

When(/^Saya menaikkan variabel dengan (\d+)$/, function(number) {
this.incrementBy(angka);
});

Kemudian(/^variabel harus berisi (\d+)$/, function(number) {
if (variabel ini != parseInt(angka))
throw new Error('Variabel harus berisi ' + angka +
' tetapi berisi ' + this.variable + '.');
});
})

saya mendapatkan kesalahan ini "ReferenceError: Diberikan tidak ditentukan"
saya menjalankan mentimun.js dan ~/node_modules/.bin/cucumber.js dengan nama file tertentu dan selalu menimbulkan kesalahan. Saya bisa menjalankan mentimun dengan ruby ​​tanpa masalah tetapi saya tidak bisa membuat mentimun bekerja

Baik. Saya percaya saya menemukan ini.

Saat menggunakan instalasi global mentimun untuk menjalankan tes fitur, Anda masih menentukan kode dukungan dengan meminta instalasi lokal mentimun. Fakta bahwa ini adalah dua contoh yang berbeda tidak menghasilkan definisi langkah yang dimuat.

Apakah ada alasan Anda tidak dapat menggunakan instalasi lokal untuk menjalankan perintah? Saya melakukan ini di mac dengan menambahkan "./node_modules/.bin" ke jalur saya.

Saya tidak suka ide mencoba membuat ini berfungsi dengan menginstal global mencoba meminta instalasi lokal untuk mendapatkan definisi langkah. Saya juga tidak menyukai instalasi global karena itu membuat Anda harus menentukan hal-hal seperti mengkompilasi modul dengan jalur absolutnya.

Jika ini memungkinkan di windows, saya lebih suka memperbarui dokumentasi untuk menyebutkan bahwa ini tidak dapat digunakan sebagai instalasi global.

Dua poin kecil tentang menghapus instalasi global:

  1. Semua dokumen perlu diperbarui, dan bukan hanya yang resmi tetapi banyak kerangka kerja populer lainnya yang dibangun di atasnya. Saya mengikuti ketika saya mengalami ini dan itu membuat frustrasi untuk men-debug seseorang yang baru saja memulai dengan JavaScript/Node.js/Cucumber.js

  2. Banyak IDE dan plugin yang di-hardcode untuk menunjuk ke global. Juga menambahkan variabel lingkungan di luar profil bash (yaitu meluncurkan WebStorm melalui Spotlight) di macOS berbelit-belit dan berubah dari versi ke versi.

Hmm. Kami dapat menambahkan opsi CLI yang memungkinkan pengguna menentukan di mana instance mentimun lokal berada? Kita dapat memiliki default process.cwd() + /node_modules/cucumber yang harus mencakup sebagian besar kasus.

@charlierudolph Setelah awalnya melaporkan kesalahan, saya menyadari bahwa saya perlu menggunakan Mentimun-JVM, karena kode yang saya perlu uji ditulis dalam Scala.js. Tetapi ketika saya perlu menguji Javascript berikutnya, solusi Anda terdengar mudah diterapkan. Terima kasih telah mencari tahu masalahnya.

Ini akan rumit, dari apa yang saya pahami Node memiliki banyak kasus tepi , jadi minimal harus melintasi orang tua hingga menemukan paket lokal atau mencapai root drive, dan saya tidak tahu seberapa populer menggunakan folder global di komunitas Node.

@jeffmath @kozhevnikov di sini adalah pemikiran saya yang diperbarui tentang ini

  1. Saya baik-baik saja dengan opsi cli yang memungkinkan pengguna menentukan jalur ke mentimun lokal. Jika tidak disediakan, ia menggunakan instance yang dieksekusi.
  2. Penggunaan opsi ini akan melakukan validasi versi untuk memastikan instalasi lokal/global adalah versi yang sama persis karena jika tidak, hal-hal mungkin tidak berfungsi seperti yang diharapkan. Jika tidak, itu akan menimbulkan kesalahan yang memberi tahu pengguna untuk menyelaraskan versi.
  3. Opsi ini akan segera ditinggalkan dan disertai dengan peringatan untuk berhenti menggunakan instalasi global dan sebagai gantinya hanya menggunakan instalasi lokal.
  4. Opsi ini akan dihapus di versi utama berikutnya.

Saya telah menemukan masalah serupa ketika mencoba membangun perpustakaan tes umum. Ide saya adalah menggunakan kembali tes di berbagai proyek.

Saya telah membangun paket tes umum yang disebut _roi-functional-tests_ yang ingin saya gunakan di proyek lain. Sejauh ini, saya telah menautkan paket dengan _npm link_ dan kemudian mencoba mengarahkan mentimun ke fitur di _roi-functional-tests_, kira-kira seperti ini:

./node_modules/.bin/cucumberjs ./node_modules/roi-functional-tests/features

Tapi saya mendapatkan ini:

Warnings:

1) Scenario: Curl request - node_modules/roi-functional-tests/features/home.feature:3
   Step: Given I make curl request to "/" - node_modules/roi-functional-tests/features/home.feature:4
   Message:
     Undefined. Implement with the following snippet:

       Given('I make curl request to {arg1:stringInDoubleQuotes}', function (arg1, callback) {
         // Write code here that turns the phrase above into concrete actions
         callback(null, 'pending');
       });

Bisakah mentimun mengimpor definisi dari luar direktori kerja?

@jramcast ya. Tetapi Anda perlu menggunakan flag cli --require .

Sudah mencoba menggunakan flag --require :

./node_modules/.bin/cucumberjs --require ./node_modules/roi-functional-tests/features ./node_modules/roi-functional-tests/features

Tapi saya mendapatkan hasil yang sama.

Mungkinkah npm link menyebabkan mentimun tidak menemukan definisinya?

Jadi saya melakukan tes yang sama tanpa npm link . Saya menerbitkan dan menginstal paket dan semuanya berfungsi dengan baik hanya dengan menelepon:

./node_modules/.bin/cucumberjs ./node_modules/roi-functional-tests/features

Dugaan saya adalah, ketika menautkan paket, require memuat mentimun yang diinstal di dalam direktori paket tertaut ( node_modules/roi-functional-tests/node_modules/cucumber ). Namun, jika _roi-functional-tests_ diinstal, npm meratakan pohon dependensi dan menggunakan instance mentimun yang diinstal tepat di bawah node_modules proyek ( node_modules/cucumber )

Punya masalah yang sama.

Versi mentimun: "mentimun": "^2.0.0-rc.9"
Versi Windows: 10
Versi simpul: 6.10.3 LTS & 7.10

Tidak berfungsi di IDE atau instance global mentimun, tidak pernah menemukan langkah-langkahnya meskipun diimplementasikan dengan benar.

Jika saya memanggil mentimun.js dari dalam direktori node_modules proyek maka itu berfungsi.

Adakah yang punya saran tentang cara memperbaiki masalah ini?

Ini juga terjadi pada MacOS Sierra 10.12.4
Node versi 7.10

Kembali ke Mentimun versi 1.3.0, berfungsi dengan baik sekarang memanggilnya melalui cmd menggunakan instance global DAN berfungsi di IDE.

Hai @charlierudolph ,
saya di langkah selanjutnya. (Pindah dari edisi 60 ke sini)
Saya menjalankan hanya dengan instance lokal tetapi definisi langkah saya tidak dikenali saat menjalankan file fitur
image
File fitur dan file Step Definition berada di tempat yang tepat (Screen-shot terlampir)
Mengapa langkah def saya tidak teridentifikasi?

Saya memiliki referensi Mentimun ke versi 1.X di package-lock.json
"wdio-mentimun-kerangka":

    "cucumber": {
      "version": "1.3.3",
      "resolved": "https://registry.npmjs.org/cucumber/-/cucumber-1.3.3.tgz",
      "integrity": "sha1-Za+2Xy+T9y2teN8qterPFGCf7C8=",
      "dev": true
    },

"webdriverio-cucumber-js":  

   "cucumber": {
      "version": "1.2.2",
      "resolved": "https://registry.npmjs.org/cucumber/-/cucumber-1.2.2.tgz",
      "integrity": "sha1-KEZJEf8arfwOZjTXY2q69mHGaJI="
    },

Saya mengubah dua versi itu menjadi 2,3,1
Versi simpul saya adalah 8.0.0
Tapi tetap saja definisi langkah tidak dikenali
Ada ide?

@vvedachalam

Jika Anda menggunakan webdriverIO dengan test runnernya sebagai lawan dalam mode standalone, Anda PERLU menggunakan mentimun-js versi 1.x, lebih disukai 1.3.3 daripada 2.x karena test runner TIDAK mendukung versi baru dan cara baru definisi langkah diimplementasikan.

Saya telah kembali ke [email protected] lama karena saya menggunakan test runner yang diperlukan untuk model objek halaman dan memastikan semua perintah dijalankan secara sinkron.

@GeeChao
Terima kasih balasannya. Saya telah mengembalikan dan menjalankan tes masih Definisi langkah tidak dikenali

Ketika saya mencoba perintah dengan -r , saya mendapatkan kesalahan sintaksis di file fitur ...
C:/webdriverio-test/node_modules/.bin/cucumber-js -r features/customer-validation.feature

C:\webdriverio-testfeatures\validasi pelanggan. fitur: 2
Sebagai pemilik
^^

SyntaxError: Pengidentifikasi tak terduga
di createScript (vm.js:74:10)
di Object.runInThisContext (vm.js:116:10)
di Module._compile (module.js:533:28)
di Object.Module._extensions..js (module.js:580:10)
di Module.load (module.js:503:32)
di tryModuleLoad (module.js:466:12)
di Function.Module._load (module.js:458:3)
di Module.require (module.js:513:17)
di membutuhkan (internal/module.js:11:18)
di C:\webdriverio-test\node_modules\cucumberlib\cliindex.js:135:16
di Array.forEach (asli)
di Cli.getSupportCodeLibrary (C:\webdriverio-test\node_modules\cucumberlib\cliindex.js:134:24)
di Kli.(C:\webdriverio-test\node_modules\cucumberlib\cliindex.js: 144:39)
di Generator.next ()
di Generator.tryCatcher (C:\webdriverio-test\node_modules\bluebird\js\release\util.js:16:23)
di PromiseSpawn._promiseFulfilled (C:\webdriverio-test\node_modules\bluebird\js\release\generators.js:97:49)

@vvedachalam Bisakah Anda membuat dan mendorong ini ke repo Anda sehingga saya bisa

@vvedachalam

Pindahkan folder step_definitions Anda ke dalam folder fitur Anda dan itu akan mulai bekerja dan mengenali definisi langkah. Satu-satunya masalah yang muncul setelahnya adalah lokasi file txtdetails.txt Anda salah.

@GeeChao
ahh,, maaf saya tidak mendorong perubahan itu.
Jika Anda melihat tangkapan layar saya di atas, definisi langkah hanya ada di dalam folder fitur.
Semoga kontennya:
Konten = fs.readFileSync('../../txndetails.txt', 'utf8');

Lalu mengapa saya tidak dapat merekatkan definisi langkah ke file fitur di lokal saya?
Apakah pengaturan saya tidak benar?

@vvedachalam

Ini bekerja untuk saya.

Satu-satunya hal yang saya lakukan adalah memindahkan step_definitions ke bawah direktori fitur

saya juga melakukan npm install [email protected] --save-dev

kemudian jalankan fitur node_modules/cucumber/bin/cucumber.js/

@GeeChao Semua bekerja dengan baik. Saya membuat loop For di dalam pernyataan Then yang menciptakan masalah. Apakah mungkin menggunakan For loop di dalam definisi langkah?
Saya tidak ingin menggunakan Contoh karena saya harus menjalankan langkah Kemudian berdasarkan data file Teks (tes berbasis data)
Saya tahu Pertanyaan ini tidak terkait dengan topik ini tetapi hanya berpikir apakah saya bisa mendapatkan bantuan.

@GeeChao Ok, sekali lagi ini kesalahan konyol saya. Variabel perulangan tidak diatur dengan benar (lupa membandingkan panjangnya). Terima kasih sekali lagi atas dukungan Anda

Bagi saya, sebagai pemula, kesalahan itu disebabkan oleh saya melewatkan string daripada regex ke dalam langkah-langkah;

Then('I log in as (.*)', ...)

daripada

Then(/I log in as (.*)', ...)

Kesalahan sederhana, tetapi semoga bermanfaat bagi orang lain yang baru memulai.

@vvedachalam Apakah kamu mengatasinya? Bisakah Anda membantu?

@sancy2017 saya pindah ke alat TestCafe dari WDIO. Jadi saya mungkin tidak dapat memberi tahu Anda solusinya segera. Beri tahu saya apa sebenarnya masalah yang Anda hadapi

Solusi sederhana untuk kesalahan ini adalah npm install [email protected] --save-dev
kemudian jalankan pengujian Anda ..npm test

Saya mengalami masalah yang sama "Definisi Langkah Mentimun tidak dikenali". Mengubah nama direktori dari "steps" menjadi "step_definitions" berhasil untuk saya.

Saya melihat kebanyakan orang memiliki step_definitions di bawah direktori fitur, saya percaya praktik yang lebih baik adalah menerapkan langkah-langkah di direktori terpisah yaitu src/step_definitions daripada menyimpan langkah-langkah di bawah direktori fitur.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat