Cucumber-js: Bagaimana cara menggunakan tag dalam skenario fungsi saya Mentimun.js?

Dibuat pada 8 Des 2015  ·  5Komentar  ·  Sumber: cucumber/cucumber-js

Hai,

Bagaimana cara mengetahui skenario yang memanggil fungsi saya? Bagaimana cara menggunakan tag dalam skenario fungsi saya?

Sebenarnya saya punya satu skenario:

Feature: create module feature
  As a admin
  I want to use create module

  <strong i="8">@createModule</strong>
  Given I am logged as 'ADMIN'
    And I am on "/admin/create"
   Then The "book_id" field should be empty

Saya ingin menggunakan tag saya @createModule dalam fungsi saya Kemudian:

this.Then(/^The "?([^"]*)"? field should be empty$/, function (el) {

    if (myModule === @createModule) {
        ...
    } else if {
        ...
    }

    return main_po.checkIsEmptyElement(this, el);
});

Saya ingin mendapatkan tag saya @createModule , untuk menentukan skenario yang dipanggil, atau alternatif lain, saya ingin tahu skenario apa yang memanggil fungsi saya.

Komentar yang paling membantu

Terselesaikan :

Saya tambahkan :

this.Before(function (scenario, callback) {
    var tags = scenario.getTags();

    this.current_module = tags[0].getName();

    callback();
});

dan fungsi saya:

this.Then(/^The "?([^"]*)"? field should be empty$/, function (el) {

    if (this.current_module === @createModule) {
        ...
    } else if {
        ...
    }

    return main_po.checkIsEmptyElement(this, el);
});

Semua 5 komentar

Tag digunakan untuk memilih skenario yang akan dijalankan saat menjalankan mentimun-js (lihat README). Saat ini langkah-langkah tidak memiliki cara untuk mengetahui skenario apa yang sedang dijalankan. Semua langkah di bawah skenario akan berbagi instance dunia (diakses melalui this dalam definisi langkah).

Terselesaikan :

Saya tambahkan :

this.Before(function (scenario, callback) {
    var tags = scenario.getTags();

    this.current_module = tags[0].getName();

    callback();
});

dan fungsi saya:

this.Then(/^The "?([^"]*)"? field should be empty$/, function (el) {

    if (this.current_module === @createModule) {
        ...
    } else if {
        ...
    }

    return main_po.checkIsEmptyElement(this, el);
});

@jechazelle terima kasih telah memposting solusi Anda, saya memerlukan fungsionalitas yang sama untuk kasus penggunaan yang berbeda :)

Dalam mentimun-js 3.2.1 saya menggunakan

Before({timeout: 20000}, async function(testCase) {
  this.tags = testCase.pickle.tags.map((tag) => tag.name);`
  ...
}

Alasan saya menggunakannya adalah karena implementasi langkah tertentu gagal untuk subset skenario yang diketahui, jadi saya telah membuat tiket cacat non-kritis di sistem pelacakan kami, menandai skenario yang gagal dengan tiket# dan kemudian menambahkan logika pada langkah implementasi untuk mengembalikan 'pending' jika this.tags berisi nomor tiket.

Ini memungkinkan build keluar untuk kembali ke hijau, sementara kekuatan yang memutuskan apakah mereka ingin memperbaiki cacat atau tidak.

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