Antのbuild.xmlを下記のように記述して、Ant unit-testを実行させると、下記の[junit]の試験がFAILEDになってしまいます。これと同じJunitの試験はEclipse上のJunitの試験ではパスしていますので、Javaのテストプログラムそのものには間違いはありません。(同じファイルを使っています。)
レポートファイルのエラーを見てみると、initializationErrorで、
org/hamcrest/SelfDescribing
java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
のようなエラーをはいていますが、理由が分かりかねています。
Antは、apache-ant-1.9.2、Junitは、juint-4.11.jarを使っています。
多分、下記xmlファイルの<junit>の書き方の問題ではないかと思うのですが、
AntのJunitの試験に詳しい方でお分かりになる方ございましたらアドバイスをお願いします。
<?xml version="1.0" encoding="UTF-8"?>
<project>
<property name="output" value="build/output"/>
<target name="compile">
<mkdir dir="${output}/classes"/>
<javac srcdir="src" destdir="${output}/classes"/>
</target>
<target name="unit-test" depends="compile">
<path id="for-unit-test">
<pathelement location="${output}/classes"/>
<pathelement location="${output}/test-classes"/>
<pathelement location="build/lib/junit-4.11.jar"/>
</path>
<mkdir dir="${output}/test-result"/>
<mkdir dir="${output}/test-classes"/>
<javac srcdir="test/src" destdir="${output}/test-classes">
<classpath refid="for-unit-test"/>
</javac>
<junit>
<classpath refid="for-unit-test"/>
<batchtest todir="${output}/test-result">
<fileset dir="test/src">
<include name="**/*Test.java"/>
</fileset>
<formatter type="xml"/>
</batchtest>
</junit>
<junitreport todir="${output}/test-result">
<fileset dir="${output}/test-result">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="${output}/test-result/report"/>
</junitreport>
</target>
</project>
No.1ベストアンサー
- 回答日時:
EclipseのJUnit実行時に読み込まれているhamcrest coreが、antから実行する時のクラスパスに含まれていないのだろうて。
クラスパスにhamcrest coreのjarを含めてあげましょう。それはhamcrest-core-1.3.jarかも知れないし、他のバージョンかも知れないしファイル名が全然違うかも知れない。一番手っ取り早いのは必要なjarは全部プロジェクトの中に含めておく事だ。
この回答への補足
情報ありがとうございます。
ご指摘のように、EclipseのUnitテストで使っている、org.hamcrest.coreのjarファイルを
build\libの下に置いて走らせるとJunitの試験はパスするようになりました。
ありがとうございました。
後、ひとつだけ分かれば教えていただきたいのですが、
現在、コマンドプロンプトのbuild.xmlが置いてあるディレクトリから、>Ant unit-test
を実行すると、Junitの試験はパスして、<junitreport>の記述でテスト結果をはいてくれて全て
OKなのですが、
Eclipseのアウトラインからunit-testを右クリックして->実行->Antビルド
を実行させると、Junitの試験はパスするのですが、<junitreport>の所で、
Error! staticでないJava関数'replace'の最初の引数は無効なオブジェクトの参照です。
Error! スタイルシートをコンパイルできませんでした。
Fatal Error! データ型'void'を'reference'に変換できません。Cause: データ型'void'を'reference'に変換できません。
となって、テスト結果のはき出しには失敗してしまうようなのです。
コマンドプロンプトで実行した場合は、ant-1.9.2を使っているのですが、Eclipseのデフォルトの
プラグインのものはant-1.8.4のものを使っているようです。
Antタスクのjunitreportが使えるAntのヴァージョンのようなものがあるのでしょうか?
また、1.8.4でもjunitreportが使えるような書き方とかあるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- PHP $_SESSIONについて教えて下さい。 2 2023/03/02 09:18
- その他(プログラミング・Web制作) VScodeでpythonプログラムの関数を実行したい 2 2022/07/13 19:24
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- Java java final 1 2022/06/10 22:49
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- その他(プログラミング・Web制作) python fbprophetについて 1 2022/09/29 19:44
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaからデータベースに接続 エ...
-
java と javax の違いは?
-
CLASSPATHを設定しても、『Clas...
-
マイクラ1.7.10にcutallなどが...
-
vba クリップボードクリアにつ...
-
EclipseでJavaコンパイラのバー...
-
gitでバージョン指定してダウン...
-
VBAの「for i=1 to cells(…」...
-
MSFormsとは何ですか?
-
ウインドウズメディアプレーヤ...
-
JSPファイルで生じるエラーをど...
-
中学生でいきなりJava
-
javaのジェネリックスでTとEの...
-
unzip32.dllの利用について(64b...
-
使用しているJUnitのバージョン...
-
プログラミング言語
-
プログラミング言語について
-
テンプレートエンジンとフレー...
-
C#のメモリマップドファイルに...
-
javacとjavaのバージョン違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Javaでのエラーについて
-
javaからデータベースに接続 エ...
-
CLASSPATHを設定しても、『Clas...
-
struts2環境構築で不具合が出て...
-
-Applet表示でのjava.lang.Clas...
-
Tomcatでエラー
-
java と javax の違いは?
-
javaサーブレット upload時
-
マイクラ Ender IO 入れたらク...
-
JAVA実行時エラーについて教え...
-
[RMI]UnicastRemoteObject.expo...
-
javacのコンパイルでファイルが...
-
propertiesが読み込めなくてnul...
-
Eclipseにdllがうまく読み込めない
-
コンパイルエラーをファイルに...
-
マイクラ1.7.10にcutallなどが...
-
JasperExceptionのエラーログの...
-
Java1.6でOracle11gに接続エラー
-
JavaMail関係でエラーが出ます
-
AntでのJunitの試験
おすすめ情報