<p>cucumber-jsがステップ定義を見つけられない</p>

作成日 2017年01月11日  ·  48コメント  ·  ソース: cucumber/cucumber-js

こんにちは、私はcucumber-jsにステップ定義を見つけさせるために何時間も努力している初心者です。 私はこの簡単な例を思いついた。

features / foo.feature内:

Feature: Foo
  Scenario: Bar
    Given FooBar

features / step_definitions / step_defs.js:

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

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

私はこの結果を得る:

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

最も参考になるコメント

大丈夫。 私はこれを理解したと思います。

cucumberのグローバルインストールを使用して機能テストを実行する場合でも、cucumberのローカルインストールを要求することでサポートコードを定義しています。 これらが2つの異なるインスタンスであるという事実により、ステップ定義はロードされません。

コマンドの実行にローカルインストールを使用できない理由はありますか? Macでこれを行うには、パスに「./node_modules/.bin」を追加します。

ステップ定義を取得するためにグローバルインストールでローカルインストールを要求することで、これを機能させようとするアイデアは好きではありません。 また、コンパイルモジュールなどを絶対パスで指定する必要があるため、グローバルインストールも嫌いです。

これがWindowsで可能である場合は、ドキュメントを更新して、これをグローバルインストールとして使用できないことを伝えたいと思います。

全てのコメント48件

cucumber-jsがステップ定義ファイルを見つけていることは知っています。構文エラーを挿入すると、cucumber-jsがエラーを正しく報告するからです。

どのバージョンのcucumber-jsを使用していますか?

2.0.0-rc.6と書いてあります

また、初心者で、同じバージョンのcucumber.jsを実行しても同じ問題が発生します
私は別のチュートリアルに従っていましたが、この時点で立ち往生しました。

/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は戻ります

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

現時点では、world.jsファイルは含まれていません。

@ dunlop-ben 1.0と2.0のリリース候補の違いについては、変更ログを参照してください。 ステップの定義方法が変更され、例では1.0構文を使用しているように見えます。

@jeffmath私には何も悪いことはありません。 簡単な例のようなものが機能することを確認する機能テストがあります。 Macで再生すると、期待どおりに動作します。 どのバージョンのノードを実行していますか? そして、あなたがWindowsマシン上にいるように見えるパスから、それは正しいですか?

@ charlierudolph-ありがとう。 私はこれを調べて、同様の結果でいくつかの異なる例を試しました。 また、ここで機能とステップの定義を使用してみました: http

ステップやファイルが欠落しているに違いないように感じます。 どこかに私を導くことができるところがあれば、それは素晴らしいことです。 Githubのドキュメントを読むのにあまり運がありませんでした。

Windows7の@charlierudolphノード6.4.0

@charlierudolph私も同様の問題を抱えています。 https://github.com/cucumber/cucumber-js/blob/master/docs/nodejs_example.mdを正確にフォローしてい

私のセットアップは

  • ノード7.4.0
  • OS:Windows 10
  • きゅうり2.0.0-rc.6

@jeffmath @TheAdamW申し訳ありませんが、私はWindowsマシンを持っていないため、これを実際に追跡することはできません。 私たちはWindowsマシンでテストを実行するためにappveyorを使用していますが、違いが何であるかわかりません。 誰かがこれを掘り下げてみてください。 できる限りのサポートを提供させていただきます

私にとっては、 ./node_modules/.bin/cucumberjsを書いている場合は機能しますが、グローバルにインストールされたcucumberjs (同じバージョン2.0.0-rc.6 )だけを書いている場合は機能しません。

ここでも同じエラー:キュウリがステップ定義を見つける方法はありません。 同じフォルダ構造を持つことはLinuxで機能します。

  • ノード。 4.4.0&4.6
  • OS:Windows 10
  • きゅうり2.0.0-rc.6

ステップ定義のパス/フォルダー/パターンを強制する方法はありますか?
ところで、 @ MartinDelilleのトリックは私にはうまく

私は突然同じ問題に直面しました。キュウリは今日の朝までスクリプトを正常に実行していました。 何が悪いのかわかりません。

ruby mineを右クリックし、コマンドラインからコマンドcucumber -r features/chatstep.featureを使用して機能を実行すると、同じ結果が得られます。

誰か助けてくれませんか

Give(/ ^私は "([^"] *) "$ /)を起動します| arg1 |
保留中#上記のフレーズを具体的なアクションに変えるコードをここに記述します
終わり

それを機能させるには、1.3.1にダウングレードする必要がありました。
CentOSでも機能しません。

2017年1月25日21:32、「MrityunjeyanS」 [email protected]は次のように書いています。

私は突然同じ問題に直面しています、きゅうりは大丈夫でした
今日の朝までスクリプトを実行します。 何が悪いのかわからない
それと。

私はルビー鉱山を右クリックし、コマンドラインからを使用して機能を実行します
コマンドcucumber-r features /chatstep.feature同じ結果が得られます。

誰か助けてくれませんか


あなたがコメントしたのであなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/cucumber/cucumber-js/issues/718#issuecomment-275224435
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/ALjDKMNdggk1Gh-x_q3KRuvlpN5f_0cOks5rV7E9gaJpZM4LhJZO

@jbgraug :何をダウングレードしましたか? ダウングレード前のUrの以前のバージョンは何でしたか

RC2.0.6とRC2.0.0で試してみました。 Linuxまたはで動作させることができませんでした
キュウリとしてのウィンドウは、ステップの定義を見つけることができませんでした。
-rオプション。

木では、2017年1月26日6:18で、Mrityunjeyan S [email protected]
書きました:

@jbgraug https://github.com/jbgraug :何をダウングレードしましたか? ウルは何でしたか
ダウングレード前の以前のバージョン


あなたが言及されたのであなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/cucumber/cucumber-js/issues/718#issuecomment-275310070
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/ALjDKGbyYXvsjlLv-dlz6bnHMfPK7t05ks5rWCypgaJpZM4LhJZO

@jbgraugキュウリは、バージョン2.0からバンドルされているgherkinを非推奨にしたと思いますか? 現在1.3.14をインストールしていますが、2.0以降のバージョンをインストールしているときに気付かなかったfetching gherkinと表示されます。

コマンドラインとテストスニペットに基づく@ reach2jeyanキュウリのルビーについて話していると思います。 これらの2つのプロジェクトは、それぞれの言語のキュウリフレームワークを実装しようとすることに関連していますが、いくつかの違いがあります。

@charlierudolphステップインしてくれてありがとう。私の悪いことに、私は実際に以前にステップ定義手順に従わなかった。さらに、キュウリとルビーのバージョンはすべて台無しにされた。 その後、すべてをリセットして、最初からやり直す必要がありました。

ちなみに今は動作します!

@charlierudolphは、 @ MartinDelilleが言ったこととまったく同じで、 npm -S./node_modules/.bin/cucumber.jsを介して正常に動作しますが、 npm -g/usr/local/bin/cucumber.jsを介しては正常に動作しません。ステップを見つけて実行しますが、どういうわけか後でそれらを忘れます。

macOS + Node.js 7.5.0 + Cucumber.js 2.0.0-rc.7
windows specificラベルは誤解を招く可能性があります

@kozhevnikov更新してくれてありがとう。 これまでのすべてのレポートはWindows上にありました(そしてローカルインストールでローカルMacで再作成できませんでした)グローバルインストールがどういうわけか異なるとは想像しがたいですが、少なくとも今は調査できます。

cygwinを介してコマンドプロンプトを使用してWindowsで同じ問題が発生するのは、おそらくそれが問題ですか? 例から直接コードをコピーしたこともあります。

特徴:簡単な数学
数学をするために
開発者として
変数をインクリメントしたい

シナリオ:簡単な数学
変数を1に設定すると
変数を1インクリメントすると
次に、変数には2が含まれている必要があります

シナリオの概要:はるかに複雑なもの
に設定された変数が与えられた

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

Cucumber.defineSupportCode(function(context){
var setWorldConstructor = context.setWorldConstructor;
var Gived = context.Given
var When = context.When
var Then = context.Then

/////あなたの世界/////
//
//カスタムワールドに対して「setWorldConstructor」を呼び出します(オプション)
//

var CustomWorld = function(){};

CustomWorld.prototype.variable = 0;

CustomWorld.prototype.setTo = function(number){
this.variable = parseInt(number);
};

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

setWorldConstructor(CustomWorld);

/////ステップ定義/////
//
//「Given」、「When」、「Then」を使用してステップ定義を宣言します
//

Gived(/ ^ a変数を(\ d +)$ /に設定、function(number){
this.setTo(number);
});

(/ ^ Iが変数を(\ d +)$ /だけインクリメントするとき、function(number){
this.incrementBy(number);
});

Then(/ ^変数には(\ d +)$ /、function(number){が含まれている必要があります
if(this.variable!= parseInt(number))
新しいエラーをスローします( '変数には' +数値+が含まれている必要があります
'ただし、' + this.variable + '。');が含まれています。
});
})

このエラーが発生します「ReferenceError:Given isnotdefined」
特定のファイル名でcucumber.jsと〜/ node_modules / .bin / cucumber.jsを実行すると、常にエラーがスローされます。 ルビーでキュウリを問題なく実行できますが、キュウリを動作させることができません

大丈夫。 私はこれを理解したと思います。

cucumberのグローバルインストールを使用して機能テストを実行する場合でも、cucumberのローカルインストールを要求することでサポートコードを定義しています。 これらが2つの異なるインスタンスであるという事実により、ステップ定義はロードされません。

コマンドの実行にローカルインストールを使用できない理由はありますか? Macでこれを行うには、パスに「./node_modules/.bin」を追加します。

ステップ定義を取得するためにグローバルインストールでローカルインストールを要求することで、これを機能させようとするアイデアは好きではありません。 また、コンパイルモジュールなどを絶対パスで指定する必要があるため、グローバルインストールも嫌いです。

これがWindowsで可能である場合は、ドキュメントを更新して、これをグローバルインストールとして使用できないことを伝えたいと思います。

グローバルインストールの削除に関する2つのマイナーなポイント:

  1. すべてのドキュメントを更新する必要があります。公式のドキュメントだけでなく、その上に構築された他の多くの一般的なフレームワークも更新する必要があります。 これに遭遇したとき、私はフォローしていましたが、JavaScript / Node.js /Cucumber.jsを使い始めたばかりの人のためにデバッグするのはイライラしました

  2. 多くのIDEとプラグインは、グローバルを指すようにハードコードされています。 また、macOSでbashプロファイルの外部に環境変数を追加する(つまり、Spotlightを介してWebStormを起動する)ことは複雑であり、バージョンごとに異なります。

うーん。 ユーザーがローカルキュウリインスタンスの場所を指定できるCLIオプションを追加できますか? デフォルトはprocess.cwd() + /node_modules/cucumberすることができ、ほとんどの場合をカバーするはずです。

@charlierudolph最初にエラーを報告した後、テストする必要のあるコードがScala.jsで記述されていたため、とにかくCucumber-JVMを使用する必要があることに気付きました。 しかし、次にJavascriptをテストする必要がある場合、回避策は簡単に実装できるように思えます。 問題を理解していただきありがとうございます。

Nodeには多くのエッジケースがあることを理解しているので、注意が必要です。そのため、少なくとも、ローカルパッケージが見つかるか、ドライブルートに到達するまで、トラバースする必要があります。グローバルフォルダーの使用がどれほど人気が​​あるかはわかりません。ノードコミュニティで。

@ jeffmath @ kozhevnikovここにこれに関する私の更新された考えがあります

  1. ユーザーがローカルキュウリへのパスを指定できるcliオプションで問題ありません。 指定しない場合は、実行されたインスタンスを使用します。
  2. このオプションを使用すると、バージョン検証が行われ、ローカル/グローバルインストールがまったく同じバージョンであることを確認できます。そうでない場合、期待どおりに機能しない可能性があります。 そうでない場合は、バージョンを調整するようにユーザーに指示するエラーがスローされます。
  3. このオプションはすぐに非推奨になり、グローバルインストールの使用を停止し、代わりにローカルインストールのみを使用するように警告が表示されます。
  4. このオプションは、次のメジャーバージョンで削除される予定です。

一般的なテストのライブラリを構築しようとしたときに、同様の問題が見つかりました。 私の考えは、異なるプロジェクト間でテストを再利用することです。

他のプロジェクトで使用したい_roi-functional-tests_という一般的なテストパッケージを作成しました。 これまでのところ、パッケージを_npm link_にリンクしてから、キュウリを_roi-functional-tests_の機能にポイントさせようとしています。

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

しかし、私はこれを取得します:

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');
       });

キュウリは作業ディレクトリの外部から定義をインポートできますか?

@jramcastはい。 ただし、 --require cliフラグを使用する必要があります。

すでに--requireフラグを使用してみました:

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

しかし、同じ結果が得られます。

npm linkが原因で、キュウリが定義を見つけられない可能性がありますか?

だから私はnpm linkなしで同じテストをしました。 パッケージを公開してインストールしましたが、次の電話をかけるだけですべてが正常に機能しています。

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

私の推測では、パッケージをリンクするとき、 requireは、リンクされたパッケージディレクトリ( node_modules/roi-functional-tests/node_modules/cucumber )内にインストールされたキュウリをロードします。 ただし、_roi-functional-tests_がインストールされている場合、npmは依存関係ツリーをフラット化し、プロジェクトのnode_modules( node_modules/cucumber )のすぐ下にインストールされているキュウリインスタンスを使用します。

同じ問題があります。

きゅうりバージョン:「きゅうり」:「^ 2.0.0-rc.9」
Windowsバージョン:10
ノードバージョン:6.10.3 LTS&7.10

IDEまたはキュウリのグローバルインスタンスでは機能せず、正しく実装されていても手順が見つかりません。

プロジェクトのnode_modulesディレクトリ内からcucumber.jsを呼び出すと、機能します。

この問題を解決する方法について誰か提案がありますか?

これはMacOSSierra10.12.4でも発生しています
ノードバージョン7.10

Cucumberバージョン1.3.0に戻り、グローバルインスタンスを使用してcmdを介して呼び出すと正常に動作し、IDEで動作します。

こんにちは@charlierudolph
私は次のステップにいます。 (第60号からここに移動)
ローカルインスタンスのみで実行しますが、機能ファイルの実行中にステップ定義が認識されません
image
機能ファイルとステップ定義ファイルは適切な場所にあります(スクリーンショットを添付)
ステップ定義が識別されないのはなぜですか?

package-lock.jsonでCucumberが1.Xバージョンを参照していました
"wdio-cucumber-framework":

    "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="
    },

これら2つのバージョンを2,3,1に変更しました
私のノードバージョンは8.0.0です
しかし、それでもステップ定義は認識されません
何か案が?

@vvedachalam

スタンドアロンモードではなくテストランナーでwebdriverIOを使用している場合は、cucumber-jsバージョン1.xを使用する必要があります。テストランナーは新しいバージョンをサポートしていないため、2.xではなく1.3.3を使用することをお勧めします。ステップ定義を実装する新しい方法。

ページオブジェクトモデルに必要なテストランナーを使用し、すべてのコマンドが同期して実行されることを確認しているため、古い[email protected]戻りました。

@GeeChao
返信いただきありがとうございます。 元に戻してテストを実行しましたが、ステップ定義が認識されません

-rを指定してコマンドを実行すると、機能ファイルでシンテックスエラーが発生します...
C:/webdriverio-test/node_modules/.bin/cucumber-js -r features / customer-validation.feature

C:\ webdriverio-testfeatures \ customer-validation。 特徴:2
所有者として
^^

SyntaxError:予期しない識別子
createScript(vm.js:74:10)で
Object.runInThisContext(vm.js:116:10)で
Module._compile(module.js:533:28)で
Object.Module._extensions..js(module.js:580:10)で
Module.load(module.js:503:32)で
tryModuleLoad(module.js:466:12)で
Function.Module._load(module.js:458:3)で
Module.require(module.js:513:17)で
必要に応じて(internal / module.js:11:18)
C:\ webdriverio-test \ node_modules \ cucumberlib \ cliindex.js:135:16にあります
Array.forEach(ネイティブ)で
Cli.getSupportCodeLibrary(C:\ webdriverio-test \ node_modules \ cucumberlib \ cliindex.js:134:24)
Cliで。(C:\ webdriverio-test \ node_modules \ cucumberlib \ cliindex.js:144:39)
Generator.nextで(
Generator.tryCatcher(C:\ webdriverio-test \ node_modules \ bluebird \ js \ release \ util.js:16:23)
PromiseSpawn._promiseFulfilled(C:\ webdriverio-test \ node_modules \ bluebird \ js \ release \ generators.js:97:49)

@vvedachalamこれを作成してリポジトリにプッシュして、複製できるようにしてください。

@GeeChao
ご覧ください
https://github.com/vvedachalam/Ruffer-Test

@vvedachalam

step_definitionsフォルダーをfeaturesフォルダー内に移動すると、作業が開始され、ステップ定義が認識されます。 後にスローされる問題は、txtdetails.txtファイルの場所が正しくないことだけです。

@GeeChao
ああ、、すみません、私はその変更をプッシュしませんでした。
上記のスクリーンショットを見ると、ステップ定義は機能フォルダー内にのみあります。
希望の内容は次のとおりです。
Content = fs.readFileSync( '../../ txndetails.txt'、 'utf8');

それでは、なぜステップ定義をローカルのフィーチャファイルに接着できないのですか?
私の設定は正しくありませんか?

@vvedachalam

わたしにはできる。

私がした唯一のことは、step_definitionsをfeaturesディレクトリの下に移動することでした

また、npm install [email protected]実行しました

次に、node_modules / cucumber / bin / cucumber.js features /を実行しました。

@GeeChaoすべてが
テキストファイルデータに基づいてThenステップを実行する必要があるため、Exampleを使用したくありません(データ駆動型テスト)
私はこの質問がこのトピックに関連していないことを知っていますが、私がいくつかの助けを得ることができるかどうかを考えました。

@GeeChaoわかりました、これも私のばかげた間違いです。 ループ変数が正しく設定されていません(長さの比較を忘れました)。 よろしくお願いします

私にとって、初心者としてのエラーは、正規表現ではなく文字列をステップに渡したことが原因でした。

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

それよりも

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

単純な間違いですが、始めたばかりの誰かに役立つことを願っています。

@vvedachalamあなたはそれを整理しましたか? 手伝ってもらえますか

@ sancy2017WDIOからTestCafeツールに移動しました。 そのため、すぐに解決策をお伝えできない場合があります。 あなたが直面している問題を正確に教えてください

このエラーの簡単な解決策は、npm install [email protected]です。
次に、テストを実行します..npmテスト

「キュウリのステップの定義が認識されなかった」という同じ問題が発生しました。 ディレクトリ名を「steps」から「step_definitions」に変更するとうまくいきました。

ほとんどの人がfeaturesディレクトリの下にstep_definitionsを持っているのを見ています。より良い方法は、featuresディレクトリの下にstepsを保持するのではなく、別のディレクトリ、つまりsrc / step_definitionsにstepsを実装することだと思います。

このページは役に立ちましたか?
0 / 5 - 0 評価