2017-02-15 11 views
2

Maven Failsafeプラグインで実行されたときに例外がスローされないJUnit統合テストがあります。フェイルセーフを設定してシステムをテスト固有のファイル(redirectTestOutputToFile = true)に書き出しました。しかし、そのファイルもXMLテスト結果ファイルも例外の完全なスタックトレースを含んでいません。ほとんどの場合と同様に、興味深いものは、原因の連鎖の終わりです。フェールセーフで失敗したテストのスタックトレースを取得するにはどうすればよいですか?

完全なスタックトレースをどこかに記録する方法でフェイルセーフを構成する可能性はありますか?

もちろん、テスト自体をtry-catchで囲み、手動でスタックトレースを記録することは可能ですが、これにより多くの定型コードが生成されます。

ご注意:この質問は確実なに、しかしフェールセーフを参照していないし、それに応じてタグ付けされています。 コンソールにスタックトレースを表示する方法は問いませんが、フェールセーフを行う方法は完全スタックトレースをファイルに保存するだけでなく、その一部に保存するだけです。 This answerは有用なものです。なぜなら、正確な名前ではないにもかかわらず正確な名前ではないからです。さらに、question 2928548という受け入れられた答えは、この質問に対しては間違っています。

+1

上記のdupe質問への回答[ここ](http://stackoverflow.com/a/16941432/994125)を参照してください。 – Laf

+0

この質問は、少なくとも「正確な」重複ではないことが明らかです(「この質問は既存の質問の正確な重複とマークされています」)。 SurefireとFailsafeは、多くのコードを共有していても、Mavenと関連するドキュメントによって独立したプラグインとして扱われます。 – Gustave

+0

私はここで見つけた答えを分かち合いますが、これは以前に質問を再開しなければならないため不可能です。これはややイライラします。重複して質問を記入する前に、二度考え、慎重にお読みください。 – Gustave

答えて

5

フェイルセーフ構成プロパティtrimStackTrace(デフォルトでは悲しいことにtrueに設定されています)は、スタックトレースの操作を担当します(Thanks to Laf!)。

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-failsafe-plugin</artifactId> 
     <version>2.19.1</version> 
     <executions> 
     <execution> 
      <goals> 
      <goal>integration-test</goal> 
      <goal>verify</goal> 
      </goals> 
     </execution> 
     </executions> 
     <configuration> 
     <trimStackTrace>false</trimStackTrace> 
     </configuration> 
    </plugin> 
    <!-- (...) --> 
    </plugins> 
</build> 

テスト自体の出力がredirectTestOutputToFileをファイルにリダイレクトすることができますが、これは、スタックトレースの問題に関連していない、スタックトレースは、フェイルセーフの出力であるからといないの次は、それが非アクティブ化されるとテストコードそのもの。

関連する問題