1

NetBeans 6.7.1を使用してクラスの1つにJUnitテストを追加しています。テストに固有のxmlファイルをロードできる必要があるため、「テストパッケージ」フォルダに含めました(実際のテスト)。私は2つの問題に直面しています、

(1)getResourceが間違ったディレクトリを探しています

(2)テストを実行してもxmlテストファイルがコピーされません(この機能は、「ソースパッケージ」ディレクトリにファイルを追加すると機能することに注意してください)。

私のテストクラスでは:

this.getClass()。getResource( "/")

戻り値:

D:\ UserProfiles \ myName \ My Documents \ NetBeansProjects \ ProjectExample \ build \ classes

私もそれを返す必要があります:

D:\ UserProfiles \ myName \ My Documents \ NetBeansProjects \ ProjectExample \ build \ test \ classes

(ここでテストクラスがコンパイルされます)

getResourceを呼び出し、親を取得してから、test\classesを調べるのはかなりハッキーなようです。これは私のテストファイルへのパスを取得する適切な方法ですか?多分これはNetBeansのバグですか?

また、testFileを右クリックして「テストを実行」すると、テストクラスファイルのみがtest / classesディレクトリにコピーされ、xmlテストファイルはコピーされません。Netbeansに、クラスファイルと一緒に通常のxmlファイルをビルドディレクトリにコピーするように指示するにはどうすればよいですか。

また、テストファイルをコピーするためにantビルドをハッキングすることも避けたいと思います。

4

2 に答える 2

4

最近、NetBeans 6.9.1 を使用してこの問題に遭遇しました。これが私がそれを解決した方法です。

  1. プロジェクトを開く->プロパティ->ライブラリ
  2. [テストの実行] タブを選択します
  3. [Jar/フォルダーの追加] をクリックします。
  4. リソース ファイルを保存した場所に移動します
  5. フォルダを追加

これで、これらのリソースを使用してテストを実行できます。これを NetBeans 6.9.1 と単純な Java アプリケーションでテストしました。

NetBeans はデフォルトで src ディレクトリにリソース ファイルを作成するため (デフォルト パッケージ)、上記の手順 5 で src フォルダを追加しました。クラスパスでリソース ファイルを検索するテストを実行すると、それが見つかります。

NetBeans はデフォルトで src フォルダーにあるリソースをパッケージ化するため、ファイルをコピーして同期を保つ必要はありません。

運用リソースとは異なるテスト リソースが必要な場合は、テスト フォルダーの下の既定のパッケージにテスト リソースを追加できます。次に、上記の手順 4/5 で src フォルダーを追加する代わりに、test フォルダーを追加します。

于 2010-12-31T21:39:30.433 に答える
2

ファイルをテストと同じパッケージに入れるだけです。たとえば、data.xml をパッケージ foo.bar に入れます。コピーやビルド スクリプトのハッキングは必要ありません。次のようにファイルを参照するだけです。

getClass().getResource("data.xml");

または、これを行うことができます:

getClass().getResource("/foo/bar/data.xml");
于 2009-11-10T23:58:53.873 に答える