0

これが私の構造です

\jpa
  \src
    \resources
      \META-INF
        \persistence.xml
  \oldtests
    \com
      TestClass.java
\war
  \oldtests
    \com
      TestSuite.java

TestClassはBaseTestを拡張し、テストスイートを介して実行しています。

テスト自体では、永続性情報を取得しています...

public class BaseTest extends TestCase {
  protected EntityManagerFactory emf;
  protected EntityManager em;
  @Override
  protected void setUp() throws Exception {
    super.setUp();
    emf = Persistence.createEntityManagerFactory("test");
    em = emf.createEntityManager();
    ...
  }
  ...
}

ただし、emfは常にnullであるため、次の行にNPEがスローされます。これにより、persistence.xmlが何らかの理由で取得されていないと私は信じています。誰かがファイルを配置する必要がある場所を解決するのを手伝ってもらえますか?ファイル自体に問題がない(設定が悪い)ことを確認できる場所はありますか?

リクエストに応じて永続性ユニットを追加することもできますが、これを他の場所で使用しているため、これが問題になるとは思えません。また、Eclipseを使用してテストを実行しています。

4

2 に答える 2

2

src/resourcesJUnitテストを実行するときは、ディレクトリをEclipseクラスパスに追加する必要があります。これは、プロジェクトレベルで、またはテストランナーのためだけに実行できる場合があります。

于 2012-12-26T20:33:29.860 に答える
1

これを解決するために必要な手順は次のとおりです。

  1. IBMプラグインjarをクラスパスに追加します

    これを行うには、を指すユーザーライブラリを作成します<WASINSTALL>\plugins\*.jar

  2. Junitクラスパスにアイテムを追加します。

    run私は>に行くことによってこれをしましたDebug Configurations

    • 次に、junitテストスイートの構成を選択しました

    • 次に、[クラスパス]タブを選択しました

    • 最後に、詳細オプションを使用してJPAプロジェクトとユーザーライブラリを追加しました。

これは私の問題を解決するように見えました

于 2012-12-27T14:18:32.553 に答える