問題タブ [testng-dataprovider]

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 投票する
4 に答える
11699 参照

java - TestNG DataProvider を使用して > 10 パラメータを渡す方法は?

TestNG Dataprovider に 10 個を超えるパラメーターを渡す必要があり、コードは次のようになります...

を使用して 10 個を超えるパラメーターを渡す必要がある場合、どのアプローチに従うべきか誰か教えてもらえます@DataProviderか? テスト メソッドのパラメーターを宣言する他の方法はありますか?

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

java - dependsOnMethods と @Factory

私は困惑しています。オンラインで多くのスレッドを読みましたが、探している解決策が見つからないようです。

私が望むのは、あるテストがデータを生成し、他のテストがデータを消費するように、テストをループで並行して実行することです。

渡された ITestContext は、テスト間のテスト データの保存に役立つことがわかりました。ただし、dependsOnMethod を使用すると、最初の依存関係メソッドが実行される前に、すべてのデータ生成テストが実行されます。

私が望むものを達成するために @Factory と @DataProvider の組み合わせを指定する方法はありますか?

テスト出力:

DataDependencyTest1 コンストラクター

文字列: デフォルトのテスト名

DataDependencyTest1 コンストラクター

文字列: 文字列 1

DataDependencyTest1 コンストラクター

文字列: 文字列 2

テスト名: Test_DependencyInjection_GenerateTestData

作成 テスト データの作成

文字列: 文字列 1

現在のテスト コンテキストにデータを追加する

テスト名: Test_DependencyInjection_GenerateTestData

作成 テスト データの作成

文字列: 文字列 2

現在のテスト コンテキストにデータを追加する

テスト名: Test_DependencyInjection_ExtractData

テスト コンテキストからデータを抽出する

文字列: 文字列 2

テスト名: Test_DependencyInjection_ExtractData

テスト コンテキストからデータを抽出する

文字列: 文字列 2

ここで問題が...

テストは、テスト メソッドが実行_ExtractData()されるたびに for を実行します。_GenerateTestData()ただし、依存関係テストは、ループの最後の繰り返しでのみ実行されるようです。

次のようなテスト シーケンスを作成するにはどうすればよいですか。

Test_DependencyInjection_GenerateTestData -- "String1" を使用

Test_DependencyInjection_ExtractData -- 「String1」を使用

Test_DependencyInjection_GenerateTestData -- 「String2」を使用

Test_DependencyInjection_ExtractData -- 「String2」を使用

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

java - TestNG で DataProvider の各値に対して複数のメソッドを実行する

DataProvider をパラメーターの束として使用して実行する TestNG テストがたくさんあります。

私のランナーは次のようになります。

したがって、Dataprovider からの 2 つのパラメーター (param1 と param2) がある場合、テストは次の順序で実行されます。

パラメーターごとにすべてのテスト ケースを実行する方法はありますか。つまり、実行は次のようになります。

test1 with param1 test2 with param1 test1 with param2 test2 with param2

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

java - testng でのデータ プロバイダーの遅延ロード

テスト用にデータ プロバイダーの遅延読み込みを実行しようとしていますが、機能していません。以下は、ファクトリ アノテーション付きメソッドのコード スニペットです。

  • 実際の出力:

    1 イテレータ インスタンスを渡す TF インスタンスが作成される: 1 2 イテレータ インスタンスを渡す TF インスタンスが作成される: 2 3 イテレータ インスタンスを渡す TF インスタンスが作成される: 3 4 イテレータ インスタンスを渡す TF インスタンスが作成される: 4 [TestNG] 実行中: コマンド ライン スイート

    DP として 1 を渡す テスト メソッドの実行: DP1 Tear Down: 1 DP として 1 を渡す テスト メソッドの実行: DP1 DP として 2 を渡す テスト メソッドの実行: DP2 Tear Down: 2 DP として 1 を渡す テスト メソッドの実行: DP1 DP として 2 を渡す テスト メソッド実行 : DP2 DP として 3 を渡す テスト メソッド実行 : DP3 Tear Down: 3 DP として 1 を渡す テスト メソッド実行 : DP1 DP として 2 を渡す テスト メソッド実行 : DP2 DP として 3 を渡す テスト メソッド実行 : DP3 DP として 4 を渡す テスト メソッド実行:DP4ティアダウン:4

    ============================================== コマンドラインスイート

    実行されたテストの合計: 10、失敗: 0、スキップ: 0

  • 期待される出力

    1 反復子インスタンス TF を渡す 作成されたインスタンス: 1 DP として 1 を渡す テスト メソッドの実行: DP1 Tear Down: 1 2 反復子インスタンス TF を渡す 作成されたインスタンス: 2 DP として 1 を渡す テスト メソッドの実行: DP1 DP として 2 を渡す テスト メソッドの実行: DP2 Tearダウン: 2 は 3 反復子インスタンスを渡します TF インスタンスが作成されました: 3 DP として 1 を渡します テスト メソッドの実行: DP1 は DP として 2 を渡します テスト メソッドの実行: DP2 DP として 3 を渡します テスト メソッドの実行: DP3 : DP として 1 を渡す 4 テスト メソッドの実行 : DP1 DP として 2 を渡す テスト メソッドの実行 : DP2 DP として 3 を渡す テスト メソッドの実行 : DP として 4 を渡す DP3 テスト メソッドの実行 : DP4 Tear Down: 4 [TestNG] 実行中: コマンド ライン スイート

    ============================================== コマンドラインスイート

    実行されたテストの合計: 10、失敗: 0、スキップ: 0

これは TestNG 実装のバグですか、それとも Factory では遅延読み込みがサポートされていません.. TIA

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

testng - データプロバイダーでデータの順序を維持するには?

状況: a() と b() の 2 つのテストがあります。b() は、「dependsOnMethods」パラメーターを使用して a() に依存するように作成されます。両方のテストに異なるデータ セットがあります。テストの実行時にデータの順序が確実に保持されるようにする方法はありますか?

例:

結果が常に Google、Apple、Microsoft、Yahoo であることを望みます。またはMicrosoft、Yahoo、Google、Apple

ただし、Google、Yahoo、Microsoft、Apple、または Google、Microsoft、Apple、Yahoo ではありません。

つまり、test1 がそのデータ プロバイダーの最初のパラメーター セットを使用して実行される場合、test2 もそのデータ プロバイダーの最初のパラメーター セットを使用して実行される必要があります。test1 の dataprovider の 2 番目のパラメータ セットが最初のセットの前に実行されるかどうかは問題ではありません。ただし、最初のセットを実行する前に、2 番目のテストもそのデータ プロバイダの 2 番目のパラメータ セットで実行される限りは問題ありません。これを達成する方法はありますか?

これは、group-by-instances パラメータを使用して修正できることに気付きました。(古いバージョンを使用していたため、testng xmlで見つけられないオプションです。)testNg のアップグレードを試みて、更新を投稿します。

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

testng - サービス層の CRUD 操作をテストするためのテスト入力の取得

データをdbに挿入し、データを更新し、dbからデータを削除するメソッドを備えたサービスレイヤーがあり、これらのメソッドの定義のためにDAOレイヤーを呼び出します。クライアント パッケージには、サービス レイヤーを呼び出す操作のユーザー入力を取得するテスト クラスがあります。

私のサービスクラスは次のようになります。

テストクラスは次のようになります。

ここで、TestNG を使用してメソッドをテストするためのテスト クラスを作成します。@DataProvider挿入操作の入力を使用して、複数の入力で一度呼び出す方法がわかりません。

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

java - csvファイルからtestngのデータプロバイダーにパラメーターを渡す方法

csvファイルからデータを読み取っています。このデータが入力になるテストがあります。値のセットごとにtescaseとして実行したい。そのためにデータプロバイダーを使用しています問題は、データの最後のセット行のみを取得していることです。コードのデバッグを手伝ってください

最後の行 name3 id3 text3 のみを取得し、テストを 3 回ではなく 1 回だけ実行します。