問題タブ [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.
eclipse - フィルタリングされたリソースを使用して maven junit テストをデバッグしていますか?
通常、maven Surefire プラグインによって実行される JUnit テストで、フィルター処理された testResources を使用しています。つまり、pomにはセクションが含まれています
このような JUnit テストをデバッガーで実行するにはどうすればよいですか? Eclipse でテストを実行すると、テスト リソースがフィルター処理されないため、テストは失敗します。フィルタリングされたテスト リソースがターゲット ディレクトリのどこかに書き込まれる場合、これを追加のソース パスとして使用できますが、そうではありません。Debug As / maven test を使用して eclipse で maven ビルドを実行しようとすると、ビルドがブレークポイントで停止しません。他のアイデアはありますか?
maven-2 - Mavenテスト失敗xmlFileNotFoundException
私のMavenビルドはFileNotFoundExceptionでHudsonで失敗しますが、NetBeansでは同じ失敗は発生しません。FileNotFoundExceptionは、テストクラス自体と同じパッケージ内の一部のxmlファイル用です。これらは、クラスファイルと同じようにビルドの一部としてコピーされていないように見えます。xmlファイルをコピーするためにPOMに何かを追加する必要がありますか?
さらに情報が必要な場合はお知らせください。簡単な質問に備えて、質問は短くしたいと思います。
maven-2 - Maven / Surefireユニットテストの「mvntest」の実行中にマニフェストを使用可能にするにはどうすればよいですか?
Maven / Surefireユニットテストの「mvntest」の実行中にマニフェストを使用可能にするにはどうすればよいですか?
単体テストを含め、AntからMavenに変換するオープンソースプロジェクトがあります。Mavenプロジェクトのプロジェクトソースリポジトリは次のとおりです:http: //github.com/znerd/logdoc
私の質問は、「ベース」と呼ばれるプライマリモジュールに関するものです。getVersion()
このモジュールには、クラス内の静的メソッドの動作をテストする単体テストがありますorg.znerd.logdoc.Library
。このメソッドは以下を返します:
このgetImplementationVersion()
メソッドは、マニフェストファイルの設定値を返します。ここまでは順調ですね。META-INF/MANIFEST.MF
私は過去にこれをテストしましたが、マニフェストがパスのクラスパス(ファイルシステムまたはJARファイル内)で実際に使用可能である限り、正常に機能します。
今の私の課題は、単体テストを実行するとマニフェストファイルが利用できないことです。
Surefireは単体テストを実行しますが、単体テストが失敗し、メッセージがLibrary.getVersion()
返されたことを示しnull
ます。
JARを確認したいのですが、まだ生成されていないことがわかります。Maven / Surefireは、リソースがクラスパスに追加される前に、クラスに対して単体テストを実行します。
さらに調査すると、Surefireは一時ディレクトリに独自のJARファイルを生成します。
次に、このJARを使用してLibraryクラスをロードします。このJARには、私がスタックしたリソースが含まれていませんsrc/main/resources
。したがって、ファイルを置くことMETA-INF/MANIFEST.MF
も機能しません。
META-INF/MANIFEST.MF
では、クラスと同じクラスローダーからファイルを利用できるようにSurefireに指示するにはどうすればよいですかLibrary
。
Mac OS X10.6.2ではJUnit4.8.1でMaven2.2.0、Java1.6.0_17を使用していることに注意してください。
maven-2 - JUnit 4でsurefireログに何かを書き込む方法
テスト内から Surefire-reports/MyClass.txt に何かを書き込むことは可能ですか? 任意の種類のロガーなど? TestNG には Reporter があります。
メッセージはレポートのテスト方法の下に表示されます。JUnitに似たものはありますか
maven-2 - maven surefire additionalClasspathElements 単一テスト
複数の Maven プロジェクトで共有される 1 つのメイン構成ファイルと 1 つのテスト構成ファイルがあります。テスト中に、テスト構成ファイルがあるディレクトリへのクラスパスを指定しています。
プロジェクト全体がテスト/ビルドされている場合、これはうまく機能しますが、単一のテストを実行している間は機能しません。構成ファイルがクラスパスに見つかりません。
ここに設定があります:
単一のテストを実行するためにsurefireがプロパティを無視する理由は何ですか?
ありがとうございました
java - TestNGAntタスクとSurefire
TestNGを実行するときのsurefireはTestNGantタスクとどのように違うのだろうかと思っていました。その理由は、JUnitテストベースを拡張するTestNGテストを実行しようとすると、動作に一貫した違いが見られるためです(これは、ここで説明されているTestNGでJBehaveテストを実行するための回避策です:http://jbehave.org/documentation/faq/)。Surefireは私のテストをJUnitテストとして誤って検出しますが(おそらくそのベースがTestCaseであるため)、Antタスクは完全に実行されます。TestNGが両方のケースをどのように処理するかについての洞察を誰かが提供できますか?
テストは次のようになります。
maven-2 - Maven Surefire プラグイン フォーク モード
デフォルトでは、maven Surefile プラグインは隔離された (フォークされた) 環境でテストを実行します。この動作は、次の構成でオーバーライドできます。
テストをデバッグする必要がある場合は、この構成スニペットを使用する必要があります。または、次の方法で maven build を実行することもできます。
これにより、ポート 5005 でデバッガーが開始されます。
私の質問は次のとおりです。分岐戦略にはどのような利点があり、maven ビルドのデフォルト戦略として選択されるのはなぜですか? 非フォーク戦略はより簡単なので、デフォルトとして使用する必要があります (maven は構成ツールよりも慣例です)。
maven-2 - surefireで生成されたXMLのDTDまたはXMLスキーマはどこにありますか(TEST-.xml)ファイル?
surefireで生成されたXML(TEST-.xml)ファイルのDTDまたはXMLスキーマはどこにありますか?
java - JUnitテストはEclipseで合格しますが、MavenSurefireでは失敗します
JUnit4とスプリングテストライブラリを使用していくつかのJUnitテストを作成しました。Eclipse内でテストを実行すると、正常に実行されて合格します。しかし、Mavenを使用して(ビルドプロセス中に)実行すると、失敗してスプリング関連のエラーが発生します。JUnit、Surefire、Springのどれが問題の原因なのかわかりません。これが私のテストコード、スプリング構成、そしてMavenから得た例外です:
PersonServiceTest.java
personservice-test.xml
Mavenでの例外
maven-2 - クラスパスからMavenテストを実行する
巨大な混乱をクリーンアップするために、テストのコードをすべて1つの通常のJavaプロジェクト(すべてsrc / main / javaにある)に入れ、それを<scope>test</scope>
別のプロジェクトの依存関係として宣言し、期待します。実行するテスト。
そのような運はありません。surefireは、ソースで確認できるテストを実行したいだけです。
ここでは、build-helper-pluginを使用し、テストをソースディレクトリとしてテストコンパイル環境に追加するという、悲しいことに明白な解決策を見ることができますが、それを避けたいと思っていました。
誰かが疑問に思っている場合、これのすべての理由は、いくつかの統合テストを実行するためにフェイルセーフプラグインを使用するためのPOM構成が非常に複雑になり、テストの実行からテストクラスのコンパイルを分割したかったためです。