問題タブ [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.
selenium - @Factory アノテーションの仕組み - TestNG
@Factory を使用する必要がある場合に、この @Factory アノテーションがどのように機能するか
以下のコードが何をするのか教えてください。
testng - TestNG の開始時にテストの合計量 (データ プロバイダーを考慮したものを含む) を取得するにはどうすればよいですか?
TestNG (スイート) の開始時にすべてのテスト/メソッド実行の (予想される) カウントを取得する方法を教えてもらえますか?
すべてのテスト メソッドの量を簡単に取得できますが、これは各テスト メソッドにデータ プロバイダー サイズの量を掛けたものではありません (データ プロバイダーを介して 1 つのメソッドが 100 回実行されたとしても、各メソッドは 1 回カウントされます)。
単純な API 呼び出しのように、これに対する明白な解決策がない限り、キーは @Test アノテーションで指定されたデータ プロバイダー名からデータ プロバイダー メソッドを把握することのようです 。 TestNG データ プロバイダー名から?
データ プロバイダー メソッドが何であるかがわかれば、データ プロバイダーを実行して、データ セットの量を数えることができます。これはあまり効率的ではないように見えますが、実行しているテストは単体テストではないため、データ プロバイダーを 2 回実行することについてあまり心配する必要はありません (実際のテストの実行時間と比較すると、ピーナッツになります)。
java - TestNG DataProvider を使用して特定のテスト反復をスキップする
TestNG DataProvider を使用して、ReadData というクラスに 1017 個のテスト ケースと 214 個の列を含む datapool.xls ファイルを読み取っています。
次に、214 個の String パラメーターを、EnterData という別のクラスの @Test アノテーションに渡します。
@Test 内に for ループを作成して、特定の反復 (1 ~ 10 など) のアクションのみを実行します。これは、合計 10 個のテスト ケースを入力するだけで機能します。私の問題は、実行の最後に、for ループのために実際に何かを行った 10 個だけではなく、「Total tests run: 1017」と表示されることです。
技術的にデータプール内のすべてを通過して実行したため、実行されたテストの総数がデータプール全体として表示される理由を理解しています。実際に実行されたテストの数のみを表示する方法がわかりません。
基本的に、@Test アノテーション自体を for ループに入れる方法を探しています。
編集:
ReadAutoData クラスでデータプールを読み取るための現在のコードは次のとおりです。
編集2:
1017 個のテスト ケースのうち、これまでのところ、次のコードを for ループの先頭に追加することで、1007 個のスキップを表示できるようになりました。
ただし、まだ 1017 テストの実行が表示されています。
java - TestNG クラスがパッケージで失敗し、単独で成功する
パッケージに 3 つのテスト クラスがあります。最初の構成:
最初の実際のテスト クラス:
そして問題の3番目:
基本的に、URL がさまざまな役割で利用可能かどうかを確認しています。私の問題は次のとおりです。これらのクラスをスイートまたはパッケージとして実行した場合、最後のクラスはSQL結果セットの「余分な行」(null)で失敗します。構成クラスと最後のクラスのみを実行すると、エラーなしで実行されます。そして例外(これは奇妙です):
TestSuite java.sql.SQLException の実行: 結果セットの終了後、com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:937) at com. mysql.jdbc.SQLError.createSQLException(SQLError.java:926) com.mysql.jdbc.SQLError.createSQLException(SQLError.java:872) com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:787) com .mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5244) com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5167) com.resources.SQLConForDataProvider.executeQuery(SQLConForDataProvider.java:47) com. pageVisibility.PageVisibilityUser.providedData(PageVisibilityUser.java:39) at sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド) at sun.reflect.NativeMethodAccessorImpl.呼び出し (NativeMethodAccessorImpl.java:57)
java - testNg の依存関係は再実行を引き起こしますか?
たとえば、次のメソッドがあり、テスト クラス全体を実行します。
その場合、以前のメソッドは何回実行されますか?