この質問は寄せ集め突然変異テストフレームワーク(http://jumble.sourceforge.net/)可能なクラスローダの問題
に関するされ、私は自分の仕事に取り組むプロジェクトにまぜこぜ取得しようとしています。 私はこのプロジェクトの一つのクラスに寄せ集めを実行したのだが、いくつかのクラスに変異を行いますが、私はantタスクとそれらのテストクラスを実行すると、彼らはOK実行にもかかわらず、いくつかの他のものに対しては
"test class is broken"
を伝えます。
私は何がうまくいかないのかを知ろうとしていて、eclipseでデバッグモードでジャムを実行し始めました。 これらのクラスをデバッグすると、私はjunitクラスTestResultのインスタンスフィールドに入るので、jumbleが "テストクラスが壊れている"と伝えるので、junitがテストクラスを実行するときにエラーと失敗の説明を見ることができます。テストクラスが壊れていると言う理由を教えてください。何が起こっているのかを知るためにデバッグする必要があります。私が観察した問題とエラーの詳細は、失敗したテストの結果であり、ジャンパーは次のようなものです:
(私が働く会社の法的規制のために特定のコードを投稿することはできませんが、
クラス "Forwarder"では、デバッグモードでJumbleを実行し、スムーズに実行して突然変異を完璧にします。これは私が一番驚いているケースです。なぜなら、これはAntタスクのジャンクを実行すると「テストクラスが壊れています」と報告されますが、Eclipseのデバッグモードでは正常に動作します。テストクラスを実行しているときに、クラスアクションの
、および他の多くは、デバッグモードでエラーが発生すると、エラーの説明を検査する際、エラーが私はJUnitの上でそのクラスを持っているjava.lang.ClassNotFoundException: org.junit.rules.ExpectedException.
ですjarとそのパスは、EclipseのデバッグモードとAntタスクで使用できます。 また、このクラスは、依存関係を持つセレニウムフレームワークのjarファイルにあります 私は、クラスローダーがロードするクラスのバージョンを決めることができない可能性があることを押しました。確信はないけど。
モジュールの場合、私は同じことをします。テストが妨害によって実行され、実行が終了すると、TestResult junitクラスで使用可能なエラーメッセージを調べます。このクラスについては、次のようになります。
java.lang.LinkageError: loading constraint violation: loader "com/reeltwo/jumble/mutation/[email protected]" previously initiated loading for a different type with name "org/hamcrest/Description" defined by loader "sun/misc/[email protected]"
このエラーは私には驚いています。 Jumbleには独自のクラスローダーがあり、どういうわけか私のトラブルの原因になるかもしれません。
私は本当に助けのいずれかの種類を理解するだろう、 マルコス