問題タブ [surefire]

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 に答える
2345 参照

java - Maven Surefireはデフォルトでテストケースを順番に実行しますか?

これは、私が自分の研究を深く掘り下げたときに気付いたこの質問のフォローアップです。

Maven Surefireプラグインがデフォルトでテストケースを順番に実行すると仮定するのは合理的ですか?テストケースは次のテストケースが開始する前に終了します(私は順番に興味がありません)。Surefireを並列実行するように構成できることがわかりました。これは、順次実行がデフォルトの動作であり、将来的に実行される可能性があることを意味しますか?

注意:なぜテストを順番に実行したいのかと尋ねられた場合(良いテストは並行して実行できるはずです)、それは私が特定の問題の解決策を解決しているためです。ウェブアプリケーション。あなたはここでそれについて読むことができます。

ありがとうございました

0 投票する
3 に答える
332 参照

unit-testing - Surefire に高価なセットアップ/ティアダウンを 1 回だけ実行させることはできますか?

Apache Zookeeper サーバーと通信する必要がある一連の単体テストがあります。明らかに、サーバー接続をモックするためのライブラリ (または自分自身をロールバックする簡単な方法) があれば最適ですが、現時点では何も存在しないことがわかります。手で試してみます。

したがって、これまでの解決策は、ローカルでダミー サーバーを立ち上げてテストを実行し、最後に破棄するというものでした。この種の機能は機能しますが、私が知る限り、Surefire にテスト実行ごとに 1 回何かを行うように指示する簡単な方法はありませ@BeforeClass@AfterClass

Zookeeper の初期化プロセスにより、数ミリ秒のテスト実行がクラスごとに数秒になり、プロジェクト全体では数分になります。サーバーを立ち上げ、各テストを実行してから破棄するようにテストをセットアップできれば、少なくとも 1 桁は高速化されると思います。

簡単な修正はありますか?私はこれについて間違った方法で進んでいますか?既存のモック飼育係ライブラリ、または自分で作成する簡単な方法がある場合、それも優れたソリューションです。

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

unit-testing - 「mavencleaninstall」とSonarを実行するときにユニットテストを1回だけ実行するにはどうすればよいですか?

Jenkinsジョブの構成は次のとおりです。最初にMavenプロジェクトをクリーンアップしてビルドし、次に単体テストと静的分析を実行しますclean install sonar:sonar 。問題はinstallsonar:sonarそれぞれが単体テストを実行したため、ビルド時間が実質的に2倍になったということです。

Jenkinsソナープラグインを使用してSonarに変更clean install sonar:sonarして実行することで、これを修正しました。clean install -DskipTests現在、ユニットテストは1回だけ実行され、ソナーは結果を示しましたが、ジェンキンスはテストについてもう知りませんでした。

私の推測では、Jenkinsは、Sonar(ビルド後のアクション)の後ではなく、ビルド後にsurefire-reportsフォルダーのみを確認しています。

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

unit-testing - JUnit4 でテスト クラスを @Ignore した場合、@BeforeClass は実行されますか?

簡単な背景: ここ数日、Maven / Surefire のテスト実行中の問題を探し続けてきました。テストの疑いのある少数に絞り込みました。私が見ている動作は正気ではありません。私はmvn clean test: 250 のテストを実行し、0 をスキップしました。ここで、疑わしいテストを に移動してsrc/test/java再試行します: 146 個のテストが実行され、0 個がスキップされました! Maven の出力には、フラグ を使用しても、他のテストが実行されていないという手がかりはありません。-X

私がこのテストを「疑わしい」と呼ぶ理由は、クラス全体が @Ignore で装飾されているためです。そのため、テスト ソースにそれを含めてもまったく効果がないはずです。そこでふと思いついたのですが、これらのクラスには、ダミーの Zookeeper サーバーを管理する @BeforeClass/@AfterClass メソッドが あります。以前はおかしな動作になっていたため、@Ignored テストを使用しています。

JUnit が前/後のコードを実行しているが、テストを無視している場合、何が起こるかわかりません (しかし、それはおそらく非常に悪いことです)。これは起こっていますか?これは起こるはずですか?もしそうなら、@BeforeClass / @AfterClass が含まれている場合、「参照用に、動作するはずだが修正が必要なテストがあります」と言うにはどうすればよいですか? また、非常に興味深いのは、これが Surefire / Maven に何をしているのか、無関係なテストが地球の表面から落ちてしまうことです。

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

spring - Maven/JUnit/Spring で最初の失敗時にテストを停止する

最初のエラーが発生したときに、Maven が JUnit Spring テストを実行しようとするのをやめてもらいたいです。これは可能ですか?

テスト クラスは次のようになり、標準の Maven ターゲットとして実行します。

Spring 構成にエラーがある場合、各テストは Spring コンテキストを再起動しようとしますが、これには 20 秒かかります。これは、ビルドが失敗したと結論付ける前に、すべてのテストを実行しようとするため、テストが失敗したことを長い間見つけられないことを意味します!

0 投票する
3 に答える
4086 参照

maven - Surefire MavenプラグインのJUnitカスタムランナーを指定するにはどうすればよいですか?

junitテキストファイルからテストデータを読み取り、実行時にテストを作成して実行するカスタムクラスローダーがあるとします。ランナーはテストクラスを使用しません。

surefire今度はmavenプラグインで実行したいと思います。surefireつまり、プラグイン「execution」のパラメータとしてランナーを指定したいと思いますpom.xml

それをしてもいいですか?

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

maven - Maven:Surefireの-Dtestオーバーライドの包含と除外を回避する方法は?

1つのプロファイルに2つの確実な実行があります-それらは異なる構成を必要とします。-Dtest = ...を実行すると、一致するテストが2回実行されます(実行ごとに1回)。

テストを1回だけ実行するにはどうすればよいですか?それ以上に、どうすれば確実にフォローを含めるか除外することができますか?(1回の実行で0回のテストが実行されます。-DfailIfNoTest= falseを使用します。)

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

maven - Oracle OSB ファイルや Soap-UI テスト ファイルなどの XML ファイルに対してチェックを実行します。

スキーマの検証だけでなく、XML ファイルのチェックを行う方法を探しています。興味深い Schematron への参照をいくつか見つけましたが、これをすべて組み合わせる方法を理解するのに苦労しています。

問題の背景

私たちは、大量の XML ファイルを生成するだけの Oracle OSB を扱っています。また、統合テスト用の Soap-UI テスト スイートも作成しています。

コード レビューを実行する際のガイドとなる、コーディング標準と開発ガイドラインの正式化を開始したところです。ただし、これらのチェックの多くは、自動化できると感じています。checkstyle が Java コードでチェックを行う方法とよく似ています。

たとえば、Soap-UI テストでは、すべての SOAP リクエストにスキーマ コンプライアンスと SOAP レスポンスのアサーションがあることを確認したいと考えています。この「チェック」は、非常に単純な xpath として記述できます。

OSB で生成された XML で同様のチェックを行います。たとえば、変数がキャメルケースの命名法に準拠していること、リソース パスがプロジェクト外のファイルを参照していないこと、トップ レベルのエラー処理が存在することなどです。

理想的なソリューション

ビルドは Maven で実行されており、soap-ui テストは確実にフォーマットされたレポートを吐き出しています。私たちは CI サーバーとして jenkins を使用しています。jenkins はこれらの確実なレポートを取得できるため、テスト結果を簡単に表示し、ビルドが失敗する理由を確認できます。

これらのチェックを実行できるものを見つけて、それらをジェンキンできれいに報告したいと考えています。

私がこれまでに把握できる最高のもの:

  • スキーマトロン チェックを実行する Ant タスクを Maven に実行させる
  • スキーマトロン出力を確実な出力に変換する方法を見つける
  • jenkins maven-runner を変更して、生成された確実なレポートを取得します

しかし、ここのうさぎの穴に行き詰まっているように感じます。これが正しい方法である場合、他の誰かがすでにこれに対処していると思いますが、schematron を CI ツールまたは maven と統合するのに役立つものを見つけるのに苦労しています。

スキーマトロンは調査する価値がありますか?

既存のセットアップとより密接に統合され、より適した他のツールはありますか?

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

java - netbeans 6.9.1 で Maven テストをデバッグしていますか?

netbeans 6.9.1 に maven プロジェクトがあり、junit 4.4 テスト クラスがあります。

netbeans コンテキスト メニューで、プロジェクトを「クリーンアップしてビルド」でき、出力で、テスト クラスが確実に検出されて実行されたことがわかります。

コンテキストメニューの「デバッグテストファイル」から選択すると、出力は次のようになります

--- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ < project-name> --- 2 つのソース ファイルを < project-path>\target\test-classes にコンパイルします

--- maven-surefire-plugin:2.7.2:test (default-cli) @ < project-name> --- Surefire レポート ディレクトリ: < project-path>\target\surefire-reports


テスト


実行するテストはありません。

これまでに確認したこと:

  • ビルド プロジェクトはテスト ファイルを見つけますが、それでも < testSourceDirectory> はそこにあり、正しいです

  • junit は 1 つだけです - *.pom の依存関係には 4.4

  • クラスファイル自体は次のようになります

    junit.framework.TestCase をインポートします。

    org.junit.Test をインポートします。

    public class SomeTest extends TestCase { @Test public void testFoo() throws Exception { / --- /} }

  • デバッグ用の netbeans アクションの説明は次のようになります

    実行目標: test-compile Surefire:test

    set properties : jpda.listen=true maven.surefire.debug=-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address} jpda.stopclass=${packageClassName} failIfNoTests=false // これは私の追加、まだ失敗していない forkMode=once test=${className}

  • プロジェクトの *.po ファイルのどこにも確実なプラグイン セクションはありません

0 投票する
0 に答える
179 参照

java - JUnit で確実なレポート ポジティブ ステップを追加する方法

私は確実なレポートを使用して JUnit テストを文書化しています。JUnit データの実行後にテスト ログのようなものを作成したいのですが、テストを中断せずに確実なレポートにデータを追加する方法がわかりません。誰かアイデアはありますか?たぶん、Surefire以外のものを使用する必要がありますか?