問題タブ [testng]
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.
ant - TestNG構成の失敗のデバッグ
AntからTestNGを実行しています。私は自分のテストリスナーを使用しています。私はコードをリファクタリングしていて、たまに
構成の失敗を修正するための最良のアプローチは何でしょうか?
spring - springTestContextBeforeTestMethod が Maven spring-test で失敗しました
Maven で TestNg を使用して、春テストでプロジェクトをセットアップしようとしています。コードは次のようになります。
test-context.xml は単純に Bean を定義します。
コマンドラインから mvn test を実行しているときに ApplicationContext のロードに失敗しました。test-context.xml ファイルが見つからないようです。ただし、Eclipse内で正しく実行できます(TestNgプラグインを使用)。
したがって、test-context.xml は src/test/resources/ の下にあります。「mvn test」コマンドが機能するように、pom.xml でこれを指定するにはどうすればよいですか? ありがとう、
アップデート:
返信いただきありがとうございます。コンテキスト ファイルを読み込めませんというエラーは、クラスパスに問題があるにもかかわらず、ファイルを別の場所に移動したことが原因でした。コンテキスト ファイルが Maven の出力から読み込まれているように見えますが、テストは失敗します。
spring-test バージョン 3.0.2.RELEASE を使用すると、エラーは次のようになります。
プロジェクトの構造は次のとおりです。
testng.xml:
テストコンテキスト.xml:
pom.xml で、testng、spring、および spring-test アーティファクトとプラグインを追加します。
基本的に、「A Simple Maven Project」Junit を TestNg に置き換えました。うまくいくことを願っています。
アップデート:
問題が発生したと思います (理由はまだわかりません) - AbstractTestNGSpringContextTests または AbstractTransactionalTestNGSpringContextTests を拡張するたびに、テストは次のエラーで失敗します。
そのため、2 つのメソッドをオーバーライドすると、最終的にエラーはなくなりました。これは正しい方法ではないと思います。春のテストドキュメントから多くの情報が見つかりませんでした。春のテストフレームワークを知っている場合は、これについて少し説明してください。
maven - Mavenを介して特定のtestngテストグループを実行できますか?
group1、group2、group3などのいくつかのtestngテストグループがあります。これらはpom.xmlで定義されており、「mvntest」を実行するとすべて実行されます。pom.xmlで構成されたグループを変更せずに、1つのグループのみを実行するために何を実行する必要がありますか。
つまり、mvn test group2 mvn test group1 mvn test group3
java - TestNG - ファクトリーとデータプロバイダー
背景ストーリー
私はソフトウェア会社で、複雑に絡み合った古いシステムを置き換えるテスト自動化フレームワークを開発しています。
私たちのシステムでは、ほとんどすべての操作でログインが必要になるため、@BeforeMethod、@DataProvider、および @Factory を使用してテストをセットアップするのが最善であると判断しました。ただし、いくつかの問題に遭遇しました。
サンプル テスト ケース
ソフトウェア システムが野球チームの名簿であるとしましょう。ユーザーが名前でチームメンバーを検索できることを確認するためにテストしたいと思います。
(注: 私は、BeforeMethods が特定の順序で実行されないことを認識しています。今のところ、それが処理されていると仮定してください。)
このテスト ケースでは、次のことを前提としています。
- ユーザーはすでにログオンしています (おそらく BeforeMethod で)
- ユーザーはすでに検索ページに移動しています (簡単、メソッドの前)
- テストのパラメータは、前述のログインに関連付けられています
問題点
それでは、テスト ケースのパラメーターを処理する方法を試してみましょう。
アイデア#1
この方法により、データプロバイダーをユーザー名に関連付けることができ、特定のテスト ケースに複数のユーザーを使用できます。
...しかし、すべての関数が 2 つの追加パラメーターを受け入れるようにする必要があるため、多くの繰り返しがあります。言うまでもなく、実際にはテストしたくない通知アナウンス機能もテストしています。
アイデア#2
それでは、ファクトリを使用して適切に初期化しましょう!
これにより、テスト ケースごとに 1 つのファクトリを作成する必要が生じます...ただし、テスト ケースごとに複数のユーザーを使用できます。
結論
私はアイデアから新鮮です。XML ファイルからデータをロードし、プログラムからメソッドを呼び出すという別のアイデアがありましたが、それはばかげています。
何か案は?
java - testngティアダウンメソッドで実行されたテストメソッドの名前を取得するにはどうすればよいですか?
基本的に、テストが実行されたばかりのコンソールにログを記録したいティアダウンメソッドがあります。その文字列を取得するにはどうすればよいですか?
クラス名は取得できますが、実行したばかりの実際のメソッドが必要です。
...画面に出力する必要があります:「実行したばかりのテストは:testCase」
getTestThatJustRanMethodName
しかし、私は実際にあるべき魔法を知りません。
java - Eclipse3.5に古いTestNGプラグインをインストールする際の問題
TestNG5.11をEclipse3.5にインストールして、次のことを取得しようとしています。
ちょっと行き詰まっているので、本当に助けて欲しいです。ありがとう
java - java.lang.IllegalStateException:先行するメソッド呼び出しの動作定義がありませんgetMessage( "title")
UnitTestの作成にEasyMock(バージョン2.4)とTestNGを使用しています。
次のシナリオがあり、クラス階層の定義方法を変更できません。
ClassAを拡張しているClassBをテストしています。
ClassBは次のようになります
ClassAコード
ClientMessagesクラスコード
MessageResourseクラスコード
ClassBのテスト
このテストを実行すると、次の例外が発生します。
java.lang.IllegalStateException:先行するメソッド呼び出しの動作定義がありませんgetMessage( "title")
私が見つけたものをデバッグしている間、コンストラクターから呼び出されたため、モックメソッド呼び出し mockMessageResourse.getMessage( "ClassB.title")は考慮されません(ClassBオブジェクトの作成)。
この場合のテスト方法を教えてください。
ありがとう。
testng - TestNGでコンソール出力をキャプチャしますか?
GradleでWiki命令ごとにTestNG+ReportNGを使用しています(デフォルトの例が機能しなかったため、クックブックで修正しました)。
どういうわけかTestNGでコンソール出力をキャプチャしたいと思います。これは可能ですか?
ありがとうミーシャ
testng - testng と gradle - デッドロックされたテストからの出力を参照してください。
ハングするテストがある場合、結果が得られないようです。
出力をライブで見る方法はありますか?
ミーシャありがとう
java - あるテストメソッドの出力を別のメソッドに渡す
testng で次の単体テスト ケースを作成する必要があります。
製品の詳細がDBに正常に保存された場合、productIdを返すsaveProductTest。
modifyProductTest では、以前に保存した productId をパラメーターとして使用する必要があります。
testNg データ プロバイダーを使用して XML ファイルから saveProductTest および modifyProductTest メソッドの製品詳細入力 (PrdouctName、ReleaseDate) を取得しています。productId は save メソッドで生成されるため、modify メソッドに渡す必要があります。
testng で、あるテスト メソッドの出力を別のメソッドに渡す最良の方法は何ですか。