問題タブ [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.
testng - TestNG で、特定のテスト メソッドの後にのみクリーンアップ メソッドを実行する方法はありますか?
1 つの例: パスワード変更テストの実行後、パスワードを元のパスワードにリセットするためのクリーンアップ メソッドが必要です。@AfterGroups を使用してクリーンアップ メソッドに注釈を付け、テスト メソッドをグループ内の唯一のメソッドにすることは 1 つの方法ですが、適切ではありません。
java - TestNGAntタスクとSurefire
TestNGを実行するときのsurefireはTestNGantタスクとどのように違うのだろうかと思っていました。その理由は、JUnitテストベースを拡張するTestNGテストを実行しようとすると、動作に一貫した違いが見られるためです(これは、ここで説明されているTestNGでJBehaveテストを実行するための回避策です:http://jbehave.org/documentation/faq/)。Surefireは私のテストをJUnitテストとして誤って検出しますが(おそらくそのベースがTestCaseであるため)、Antタスクは完全に実行されます。TestNGが両方のケースをどのように処理するかについての洞察を誰かが提供できますか?
テストは次のようになります。
maven-2 - Maven-他の構成でプラグインを実行するためのカスタムフェーズを追加します
1つのMavenプロジェクトに2セットの統合テスト(自動テストと手動テスト)があります。手動テストは少数ですが、面倒です。サーバーなどのプラグを抜く必要があります。手動テスト用に別の目標を作成したいので、手動テストを実行するようなものを実行できmvn manualtests
ます。通常のMavenビルドなどを実行するだけの場合mvn install
は、自動テストを実行する必要があります。
手動テストには、TestNGアノテーションを付け@Test(groups="manual"
ました。目標は、surefireプラグインの2つの構成を作成することです。1つはビルドのテストフェーズにバインドされた自動テストを実行し、もう1つは呼び出したい別のカスタムフェーズにバインドされた手動テストを実行しますmanualtests
。プラグインの実行を存在しないフェーズ(つまり、Mavenによって事前定義されていないフェーズ)にバインドすることはできないようです。独自のフェーズを定義することはできませんか?
java - TestNG でのアプリケーション ログ レベルの設定
ロギングに Commons Logging を使用するアプリケーションがあります。Maven でビルドされ、テストには TestNG を使用します。テスト中にログ レベルを微調整しようとしていますが、うまくいきません。何をしても、すべてが INFO に設定されます。クラスパスに logging.properties ファイルを作成しようとしましたが、まったく何もしません。log4testng.properties ファイルも作成しました - これは読み取られています (意図的に構文エラーを導入した後に TestNG がエラーを表示したため、これはわかっています) が、その設定は効果がありません。
助言がありますか?
EDIT:まあ、根本的な問題(java.util.loggingが設定の試みを無視している理由)を理解していませんが、テスト中にLog4jを利用可能にしてから設定することで、必要なものを得ることができました。現時点では本当に気にしないので、この質問を閉じます。
java - TestNG テストの実行時に Log4j 出力をキャプチャする
私は TestNG テストを実行しており、ログ出力は に設定されてDEBUG
いるため、失敗した場合に何が問題なのかを正確に調べることができます。
問題は、出力が非常に冗長であり、実行時に全員を悩ませていることです。すべての Log4J ロギング イベントをキャプチャしたいと思います (これは簡単です)。テストが失敗した場合にのみ出力します。また、メソッドを考慮に入れ@Before/@After
、それらの出力も出力する必要があります。
Log4J の List を既に持っていると仮定すると、 / /メソッドが失敗しLoggingEvent
た場合にのみそれらを出力するにはどうすればよいですか?Test
After
Before
unit-testing - 連続したテストでのデータセットの読み込みは、「クローズドセッション」で失敗します
2つのテストクラスがあり、どちらもunitilsアノテーションが付けられています
ターゲットデータベースはHSQLDBであり、 testngアノテーションが付けられた抽象スーパークラスメソッドで開始されます。
テストランナー(Maven Surefire)が2番目のテストに到着すると、データベースは正しくインスタンス化されますが(ログで確認できます)、unitilsまたは実際にはdbunitはデータセットのロードに失敗します。
dbunitが最初のテストクラスで HSQLDBに接続できるのに、2番目のテストクラスでは接続できない理由に戸惑います。
enybodyには手がかりがありますか?
ありがとうございました!J。
java - Hashtable 配列をオブジェクト配列に変換する
ここでの問題は、Hashtable 配列をオブジェクト配列に変換できないことです。ここで、コンテンツの読み取りは、xls ファイルからすべての行を読み取り、次の形式でハッシュテーブル配列に保存します。
roleName=testRole981、admin=admin、projectName=Automateme、userPassword=aspiresys12、roleDesc=grant[testplan_execute]、grant[testplan_create_build]、grant[testplan_metrics]、adminPass=admin、userName=mur .
その hashTable 配列をオブジェクト配列に変換して、testNG テスト ケースでそれらを DataProvider として渡すことができるようにします。
java - TestNGは、@ BeforeSuiteメソッドが@BeforeTestメソッドの前に実行されることを保証しますか?
背景:私の目標は、自己完結型(MavenまたはAntプラグインへの文字列はなく、Javaのみ)を実行するTestNG-Seleniumシステムをコーディングすることです。テストケースがブラウザやドメインURLなどのパラメータを受け入れることができるようにする必要があります。TestRunner
これらのテストケースをインスタンス化するとき、ブラウザーとドメインを使用して、Seleniumオブジェクトを取得してテストを実行します。
@BeforeSuite
問題: Seleniumオブジェクト(の)を取得しようとする前に、スイートごとに1つのテストクラスのみが(メソッドの)ドメインパラメーターの取得に成功します@BeforeTest
。ドメインを受け取らないテストクラスには、null
インスタンス化できないセレンオブジェクトがあります。
コード:XmlClassesはそれぞれ独自のXmlTestに含まれており、3つすべてが単一のXmlSuiteに含まれています。スイートには、TestClass1、TestClass2、TestClass3の順に含まれています。テストクラス自体は、注入された変数を初期化し、その後Seleniumのインスタンスを取得する機能を含む、2層の抽象基本クラスのサブクラスです。これの目的は、コードの繰り返しをできるだけ少なくして(複数のドメインで)1つまたは複数のアプリケーションをテストすることです(つまり、Seleniumのインスタンス化は、すべてのテストに共通であるため、ルート基本クラスにあります)。詳細については、以下の方法を参照してください。
出力:TestCase3は正しく実行されます。TestCase1とTestCase2は失敗します。スタックトレースが生成されます...
この問題に関する情報をいただければ幸いです。
java - Javaについて今学ぶべきUnitTestフレームワークはどれですか?
私はJavaで約3年以上プログラミングしていますが(日常的ではありませんが、少なくとも基本は理解しています)、ユニットテストの分野にはあまり入っていません...
私の仕事は現在、よりテスト/問題分析指向であるため、優れた Java ユニット テスト フレームワークがこの役割に非常に役立つと考えています。
明らかに、私のチームでどのフレームワークを使用するかについての正式な規則はありません。初心者として、すぐに始めるのに適したフレームワークはどれでしょうか?
ジュニット?
テストNG?
または、他の何か?
編集: Amazon の TestNG と比較して、JUnit にはリファレンスとしてより多くの印刷された本があるようです。しかし、今のところJava業界での人気/傾向はわかりません。
java - これは同期されたメソッドである必要がありますか?
私は TestNG を使用してテストを並行して実行していますが、ヘルパー クラスとユーティリティで発生する可能性のある同期の問題に注意したいと考えています。私の知る限り、各テストは、テスト ランナーによって透過的に作成された独自のオブジェクトです。したがって、非静的なものの同期について心配する必要はありません。これは、スレッドで作成されたオブジェクトであり、他のオブジェクトからは見えないためです。
しかし、私が書いたこの外部ログ関数を呼び出す場合、同期する必要がありますか? thread-1 が入力して threadName="Thread-1" を設定し、次に thread-2 が入力して SAME threadName 変数 = "Thread-2" を設定し、次に thread-1 がバックアップを取得して出力する競合状態が発生する可能性はありますか? "--foo | スレッド 2"? これを同期メソッドにする必要がありますか?