問題タブ [maven-surefire-plugin]
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.
maven-2 - Maven Surefire プラグインが ${project.build.directory} に 2 つの Surefire* ディレクトリを作成するのはなぜですか?
これはかなり面倒だと思います。ターゲット フォルダーには 2 つの確実な* ディレクトリがあります。
ディレクトリを削除するオプションをsurefire
見つけようとしましたが、見つけたようです。問題は、この空のディレクトリを持たない他のプロジェクトがあり、surefire-reports
.
私は何を間違っていると思われますか?どうすればこれを削除できますか? 私がこれを尋ねる主な理由は、ディレクトリが空であるため、この空のディレクトリがコンソールでタブのオートコンプリートを壊し、私を怒らせることです。
さらに、これは単なるテスト プラグインであり、レポート プラグインではありません。プロジェクトにはセクションがありません (親ではありません)。
これは私の確実なプラグインのセットアップです:
前もって感謝します!
maven - Maven Surefire 2.12 が -Dtest パラメータを使用して特定のテストを実行しない
プロジェクトのすべての Maven プラグイン バージョンをアップグレードした後、次の問題が発生しました: 基本コマンドを実行するmvn test -Dtest=SomeTest
と、テストがまったく実行されずにビルドが終了します。実際、-Dtest
パラメーターを使用してテストを実行することはできません (もちろん、テストは存在し、単純に実行すると実行されmvn test
ます)。
いくつかの検索の後、問題は確実な 2.12プラグインの使用が原因であるようです。Maven (2.2.1 / 3.0.2) と JUnit (4.7.x、4.8、4.10、さらには 3.8.x) のいくつかのバージョンをテストしましたが、問題に影響はありません。
私のプロジェクトには、それに影響を与える可能性のある特定の構成がいくつかあるのでしょうか? mvn archetype:generate
とにかく、 (基本的なorg.apache.maven.archetypes:maven-archetype-quickstartを使用して)新しいプロジェクトを作成しました。
JUnit 4.10を使用してpom.xml
(ただし、何も変更しませんでした。他のバージョンで試しました)、surefireのバージョンを定義します:
実行しますmvn test -Dtest=AppTest
(アーキタイプによって作成されたデフォルトの JUnit テスト):
ここで、Surefire にpom.xml
バージョン2.12を使用するように変更し、コマンドを再度実行します。
今回はテストは実行されません:(
私に関する限り、それは回帰だと思いますが、それは非常に驚くべきことです。確かに、Surefire 2.12 バージョンでJIRA の不具合-Dtest
が記録されており、この説明では、パラメーターの使用に成功しています。
私は何か間違ったことをしていますか?それとも本当のリグレッションですか (この場合、JIRA を作成します)。
ありがとう。
unit-testing - Maven 2で2つのテストスイートを切り替えるにはどうすればよいですか?
Javaテストを実行するためにmaven-surefire-pluginを使用しています。テストは2つのカテゴリに分類されます。
- 高速テスト
- 遅いテスト
「高速」スイート全体は数秒で実行されますが、低速テストには30分かかります。
開発中は、高速テストのみを実行したいと思います。コミットするときは、低速テストも実行できるようにしたいので、低速テストを実行することはオプションであり、高速テストをデフォルトにする必要があります。
CIサーバーで、両方を実行したいと思います。
遅いテストに速いテストが含まれている場合は問題ありません(さらには推奨されます)。
このシナリオでは、Maven、JUnit、およびSurefireをどのように設定する必要がありますか?
fork - PowermockによるEmmaカバレッジ
プロジェクトでは、カバレッジレポートを生成するemmaを構成しました。静的メソッドのいくつかをモックするためにPowerMockを導入するまで、セットアップ全体は正常に機能していました。
@RunWith(PowerMockRunner.class)でクラスにアノテーションを付けると、emmaはカバレッジプロセスを再開しようとし、addressbind例外をスローします。Mavenのsurefireは別のランナー用に新しいJVMをフォークしており、emmaは新しいJVMで再起動を試みていると思います。
surefire forkModeのさまざまなオプションを試しましたが、役に立ちません。
Running util.HttpClientFactoryTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.154 sec
Running xxx.util.ServiceConnectorUtilTest
EMMA: collecting runtime coverage data ...
java.net.BindException: Address already in use: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
これを回避する方法についてのアイデアはありますか?どんな助けでも大いに感謝しました。ありがとう
maven - DLL を使用する Maven Surefire テストのシステム パスに追加するにはどうすればよいですか?
システム パスに lib ディレクトリを追加して、Maven が (gah) DLL ネイティブ ライブラリを使用する単体テストを実行できるようにしたいと考えています。
これまで<argLine>-Djava.library.path=${path.dll}</argLine>
、DLL パスをライブラリ パスとして追加していました。ただし、Windows はまだパスを介して DLL を解決しようとしています。
java.lang.UnsatisfiedLinkError
では、Surefire への変更されたシステム パスを提供する方法はありますか?
よろしくお願いします。
maven-2 - 確実なレポートに新しいテーブル エントリを追加する方法
私はmavenが初めてです。そのため、それに対処するのは難しいと感じています。2 つの質問があります。
- 新しいテーブルなど、Maven Surefire レポート プラグインに新しいコンテンツを追加する方法はありますか。必要に応じてレポートをカスタマイズしたいと考えています。
- buildnumber プラグインを使用して実行ごとに一意の実行 ID を取得していますが、この ID がレポートに反映されていません。buildnumber プラグインは Subversion でのみ動作しますか?
ポンポンは;
もう 1 つクエリがあります。
3->完全なテストスイートのバッチファイルまたはexeファイルを作成すると、多くのJVMで同時に実行できます。たとえば、1つのJVMを実行しているEclipseで実行できます。しかし、Eclipse を使用しておらず、testsuite バッチ ファイルを直接実行するだけで、JRE が多くの JVM インスタンスをインスタンス化できる場合があります。可能であれば、各テスト スイートを .m2 リポジトリに関連付ける必要がありますか。
maven-surefire-plugin - Maven Surefire XHTML レポートをカスタマイズする
自動化の目的で Apache Maven を使用しています。テストの自動化が完了すると、XHTML および確実な HTML レポートが生成されます。
形式に応じて確実な HTML レポートをカスタマイズしたいと考えています。たとえば、会社のロゴを配置したり、スクリーンショットを添付したりします。
Java コードを使用してレポートをカスタマイズする方法はありますか? XMLPARSER に出くわしました...誰かが私に良いリンクを提供したり、この変更を行う方法を教えてくれたりできますか?
java - 別のテストソースフォルダーをMavenに追加し、それを別のフォルダーにコンパイルするにはどうすればよいですか?
src/test/java
単体テスト用のデフォルトのフォルダーがあります。src/integration/java
統合テスト用に別のフォルダーを使用できます。
maven-surefire-plugin
それぞれのフェーズでユニット/統合テストを実行するようにを構成しました。これは、コンパイルされたクラスが正しいディレクトリにある場合にうまく機能します。残念ながら、Mavenは1つのテストソースフォルダーと1つのテスト出力フォルダーのみをサポートします。
mavens build-helperプラグインを使用すると、別のtest-sourceフォルダーを追加できますが、コンパイルされたクラスはに生成されますが、からクラスをtest-classes
コンパイルしたいと思います 。これは可能ですか?src/integration/java
target/integration-test-classes
PS:パッケージベースのソリューションでこの除外/含めるのは好きではありません(**/it/**
デフォルトのテストフェーズからすべてのファイルを除外**/unit/**
し、統合フェーズからすべてを除外します。
maven - ネイティブライブラリを使用したSurefireJUnitテスト
HudsonでMavenを使用してJavaビルドプロセスを実行し、Surefireプラグインを使用してJUnitテストを実行していますが、ネイティブdllを必要とする1つのプロジェクトの単体テストで問題が発生しました。
私たちが見ているエラーは次のとおりです:
エラーのあるテスト:TestFormRegistrationServiceConnection(com。#productidentifierremoved#.test.RegistrationServiceTest):java.library.pathにオーセンティケーターがありません
ここで、Authenticatorは必要なdllの名前です。これを設定する唯一の方法はargLineを使用することを示唆するこのSO投稿を見つけました。構成を次のように変更しました。
ただし、これでも同じエラーが発生します。System.out.println(System.getProperty( "java.library.path"));を含めると、これがパスに追加されていないことがわかります。
これをどのように解決できるかについてのアイデアはありますか?
spring - maven + Surefire-plugin および Spring @Autowired に関する問題
@Autowired
私はSpringをMavenテスト内で動作させることに頭を悩ませてきました。IntelJ 内で JUnit テストを実行すると (Eclipse は試しませんでした)、動作します。しかし、mvn clean install を実行すると、JUnit テストは次のエラーで失敗します。
testApp(com.sample.spring.AppTest): 'com.sample.spring.AppTest' という名前の Bean の作成中にエラーが発生しました: 自動配線された依存関係の注入に失敗しました。ネストされた例外は org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.sample.spring.AppB com.sample.spring.AppTest.appB; です。ネストされた例外は org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.sample.spring.AppB] が依存関係に見つかりません: この依存関係のオートワイヤー候補として適格な少なくとも 1 つの Bean が必要です。依存関係アノテーション: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
この動作を一貫して示す自己完結型のサンプル プロジェクトを作成しました。Spring 3.1.1 を使用しています。誰かが同じ問題に直面し、それをクラックしたと確信しています。この問題に関するいくつかの指針を探しています。