1

junit テストにデフォルトの maven ディレクトリを使用したいので、次のようにします。

  • Eclipseでtest/javaフォルダーを作成しました。
  • そこにjunitクラスを作成しましたpackage com.xxx.xxx.tracker.utils.test;

しかし、日食は私にエラーを与えています。パッケージ名を変更したい

package test.java.com.xxx.xxx.tracker.utils.test;

または、日食は、対応するフォルダーに移動することを望んでいますcom/xxx/xxx/tracker/utils/test

日食からの正確なメッセージは次のとおりです。

  • 宣言されたパッケージ「com.xxx.xxx.tracker.utils.test」は、予期されるパッケージ「test.java.com.xxx.xxx.tracker.utils.test」と一致しません
  • 2 つのクイックフィックスが利用可能
  • xxxTest.java を「パッケージ com.xxx.xxx.tracker.utils.test」に移動します。
  • パッケージ宣言を「test.java.com.xxx.xxx.tracker.utils.test」に変更します

junit を test/java フォルダーに保持して、ビルドから除外し、規則に従いたいのですがtest.java、パッケージ名に含める意味がありません。

パッケージ名を希望どおりに保ち、それを test/java フォルダーに入れる方法はありますか?

編集:「src」フォルダーにプロジェクトがあるためですか? 例えば:

src/
   com.xxx.xxx.tracker.utils.Xxxx.java
   test/
       java/
           com.xxx.xxx.tracker.utils.XxxxTest.java

このプロジェクトは Maven から始まったわけではありません。それは別の人によって変換されました。

編集2:火のためのより多くの燃料:

これは私のpom.xmlからのものです(私が設定していません)。

<build>
<sourceDirectory>/home/me/workspace/proj_PARENT/proj_Classes/src</sourceDirectory>
<testSourceDirectory>/home/me/workspace/proj_PARENT/proj_Classes/src/test/java</testSourceDirectory>

私はEclipse m2eプラグインを持っています。

4

4 に答える 4

3

構造とクラスパスに問題があります。記述されたレイアウトでは、フォルダー src がソースのルートです。ただし、サブフォルダーにあるはずのテストが含まれています。あなたの場合、ネストされたソースフォルダーがあります。*.java ファイルは 2 つのパッケージに存在するため、これはコンパイルの問題を引き起こすに違いありません。パッケージの 1 つが無効です。

src/
   com.xxx.xxx.tracker.utils.Xxxx.java
   test/
       java/
           com.xxx.xxx.tracker.utils.XxxxTest.java

ここで、2 つの src-folder を作成する必要があります。

src/
   main/
       java/
           com.xxx.xxx.tracker.utils.Xxxx.java
   test/
       java/
           com.xxx.xxx.tracker.utils.XxxxTest.java
于 2013-02-08T23:11:48.987 に答える
2

Eclipseの標準のMavenディレクトリレイアウトに従ったMavenプロジェクトでは、ビルドパスに次のソースフォルダーが含まれている必要があります(.classpathファイルからのスニペット)

<classpathentry kind="src" output="target/classes" path="src/main/java"/> 
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>

Eclipseプロジェクトエクスプローラーは次のようになります。

ここに画像の説明を入力してください

Eclipse m2eプラグインを使用している場合、プロジェクトにsrc / main/javaフォルダーとsrc/test / javaフォルダーを作成すると、それらがビルドパスに自動的に追加されます。

アップデート :

質問の更新では、sourceDirectoryにtestSourceDirectoryをネストしていることを示しています。ほとんどのIDEはそれを行わないように警告し、問題を引き起こす可能性があります。Eclipseは、ソースフォルダーからテスト部分を除外することでこれを処理できますが、m2eプラグインを使用してプロジェクト構成を更新しようとするたびに、ネストされた例外メッセージが再び表示されます。

この種のセットアップが本当に必要な場合は、それに応じてビルドパスを構成する必要があります(プロジェクトを右クリック-ビルドパス-ビルドパスを構成)。

于 2013-02-08T22:03:50.927 に答える
1

プロジェクトに新しいフォルダーを追加しtest/java、 でソース フォルダーとして構成してみてくださいProject > Properties > Java Build Path。タブを見てくださいSource

ディレクトリ レイアウトは次のようになります。

project/
-> src/
-> test/

テスト パッケージの接尾辞として使用する必要がない場合があり、 でテストする.testときに import ステートメントを省略できます。x.y.z.MyClassx.y.z.MyClassTest

于 2013-02-08T21:43:55.390 に答える
0

これがまさに私がしたことです。

  • 新しいソースディレクトリを作成します:src/test/javaおよびsrc/main/java
  • 現在のcom.xxx.xxx.trackar*パッケージをすべて取得し、すべてを選択して右クリックするRefactor > Moveと、それらをに移動しましたsrc/main/java
  • src/test/java.testサフィックスのないパッケージ名を使用して新しいjunitテストを作成します。
  • 新しいソースディレクトリに準拠するようにpom.xmlを編集します。
  • プロジェクトを右クリックしますMaven > update Project
  • Project > Properties > Java Build PathSourceタブを参照してください。確認src/test/javasrc/main/javaて、そこにあり、そこにありsrcません。正しくない場合は、戻ってpom.xmlを再度更新します(そして有効なpomを表示します)...
  • Eclipseを再度閉じて開きます。
  • パッケージ名のエラーはなくなりました!!!!!! わーい!

よろしくお願いします。PS:リビジョン管理履歴を失いましたが、それはレガシーシステムを使用しているためです。

于 2013-02-11T17:52:13.457 に答える