問題タブ [cucumber-junit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
9629 参照

java - Cucumber シナリオの DataTable (HashMap) をメソッド呼び出しに変換する

Cucumber(-JVM)、Junit、Java 8 を使用して、XML ファイル (最大数百のフィールドを持つ) を受け入れるアプリケーションの受け入れテスト フレームワークを作成しています。 Builder インターフェース (数十のコンストラクターを持つことを避け、ある種の宣言型 API を持つことを避けるため)、つまり:

テストで有効な XML ファイルを動的に生成したいので、このライブラリを作成しました。キュウリのシナリオを英語のように読みたいので、次のように書く代わりにデータ テーブルを使用することにしました。

50 の異なる 'and' 行。したがって、それらは次のようになります。

問題:

キュウリ データ テーブル (HashMap に変換される) のキーをビルダー パターンのメソッド名にマップする必要があります。最初は、ラムダとメソッド参照を使用するとこれを達成できるのではないかと考えましたが、まだ方法を見つけていません。

それで、私の次の考えは反省でした。Cucumber Data テーブルのキーからメソッド名へのマッピングを、次のようなプロパティ ファイルに保存することにしました。

ただし、問題が発生しました。キュウリ データ テーブルのフィールドの一部が、XML データ バインディング ライブラリの深くネストされたフィールド (XML スキーマによる) にマップされます。たとえば、次のようになります。

「X フィールド」は A フィールド内にネストされています。したがって、私のテストメソッドでは、次のことを行う必要があります。

しかし、Java でのリフレクションでは、パラメーターのデータ型を事前に知っておく必要があります (またはそう思います)。たとえば、メソッドに関連付けられているパラメーターの型を知りたい場合は、次のようにします。

これに対する回避策を見つけることができると確信していますが、最終的には「ハック」パスをたどっているようです。この問題にアプローチするより良い方法はありますか? それとも私は「正しい」道を進んでいますか?

0 投票する
1 に答える
2306 参照

java - CucumberException : シナリオ ランナーの作成に失敗しました

シナリオ アウトラインを実行しようとすると、次のエラーが発生します - CucumberException : Failed to create scenario runner.

数日前には同じシナリオ アウトラインが正常に実行されていましたが、今ではこのエラーが発生します。

このエラーをオンラインで調べたところ、junit 4.12 を使用しているときに発生することを示唆する多くの投稿が見つかりました。しかし、私はjunit 4.11を使用していますが、それでも同じです。

ここに私のpomの依存関係があります:

これはキュウリのコードです:

助言がありますか ?

0 投票する
1 に答える
1584 参照

java - Cucumber JUnit:シナリオステップ定義がクラス全体に広がっているときにスクリーンショットを撮る方法は?

私は機能ファイルを持っています:

これらのステップ定義は 3 つのクラスに分けられます。

ステートメントは Scenario_1 と Scenario_2 で共通であるため、それらの定義は 1 つのクラスにグループ化されます。

Scenario_3 ステートメントの定義は別のクラスにあります。

Scenario_4 ステートメントは別のクラスで定義されています。

シナリオ 1、2、3 はフロント エンドを扱うため、スクリーンショットが必要です。ただし、Scenario4 はバックエンドを扱うため、スクリーンショットは必要ありません。

機能ファイルを実行します:

1) Scenario_1 と Scenario_2 は正常に実行されます。

2) Scenario_3 を実行すると、SearchStepDefinitions の「//スクリーンショットを撮る」で NullPointerException が発生します。

3) Scenario_4 を実行すると、SearchStepDefinitions の「//スクリーンショットを撮る」で NullPointerException が発生します。

ステートメントを異なるクラスに保持し、同時に必要に応じてスクリーンショットを撮ることができるように、プログラムをどのように構成すればよいですか?

0 投票する
1 に答える
421 参照

cucumber - cucumber + java : step1 で返されたパラメーターを step2 に渡す

きゅうり初心者です。キュウリによる UI 自動化のユースケースを以下に示します。

以下の例を検討してください。

TestNgでは、

現在、キュウリに移行しており、キュウリで上記の例を達成する必要があります。

機能: フォーム。


シナリオ: アプリケーションへのログイン
"formname" という名前のフォームを作成し、"formname" を
検索</p>

私たちが直面している問題 -> step1 で返される formname を step2 に渡す方法がわかりません。シナリオ内で、このフォーム名をさまざまなクラスに実装されている別のステップ定義に渡す必要があります。

ネットで検索しようとしましたが、私たちのニーズに固有のものは見つかりませんでした。

誰かが私たちにいくつかの指針/提案を与えることができれば、それは大きな助けになるでしょう.

0 投票する
2 に答える
681 参照

java - junitキュウリの手順がありませんエラー

Java - キュウリの例

ステップが欠落しているように見えます。欠落しているステップについて不平を言っており、それらを未定義と見なしています

.feature ファイル:

ステップファイル:

テストを実行すると

6 シナリオ 2 未定義 以下のスニペットを使用して、不足している手順を実装できます。

0 投票する
1 に答える
380 参照

cucumber - キュウリをバージョン 1.2.4 にアップグレードすると、ランタイム オプション エラーが発生する

キュウリのバージョンを 1.1.2 から 1.2.4 にアップグレードしようとしたときに、このエラーが発生しました。私はJDK1.8で実行しています。

これは動作しないコードです

そして、これはエラー出力です: