4

intelliJ での単体テストの実行に問題があります。人々が同様の問題を抱えている他のフォーラムを調べましたが、これまでのところ、まだ機能していません。これはエラーです:

java.lang.IllegalStateException: Failed to load ApplicationContext
...
Caused by: java.io.FileNotFoundException: class path resource [com/d1/d2/service/ServiceTest-context.xml] cannot be opened because it does not exist

私のテストでは、次のものがあります。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "ServiceTest-context.xml")
public class ServiceImplTest ....

私は明らかに、原因による行で探している場所にファイルが存在することを確認しました。また、出力ディレクトリを確認するための提案を読み、そこにも存在することを確認しました。他に目立っているものはありますか?ant を使用してコマンド ラインからテストを実行できますが、モジュールではなく個々のクラスを実行できるようにしたいと考えています。

計画:

IntelliJ_project
    src
    test
        com
            d1
                d2
                    otherStuff
                    ...
                    ...
                    service
                        ServiceImplTest.java
                        ServiceTest-context.xml

出力フォルダ:

test-classes (output folder)
    com
        d1
            d2
                service
                    ServiceImplTest.class

そのため、出力の間違ったディレクトリを探していたことがわかりました。コンテキスト ファイルが出力場所に到達しません。どうすればそこに届きますか?

4

3 に答える 3

4

この解決策を試してください、それは私のために働きます:

  1. フォルダServiceTest-context.xmlに入れsrc/test/resourcesます。

  2. build次の行をpomのセクションに追加します。

    <testResources>
      <testResource>
        <directory>src/test/resources</directory>
      </testResource>
    </testResources>
    
  3. Maven プロジェクトを再インポートして、個々のテストを実行します。

于 2013-05-21T06:08:48.183 に答える
0

同じ問題があります。すべてのファイルをターゲット ディレクトリにコピーしないという IntelliJ のバグがあるようです。したがって、コンテキストが見つかりません。同じ問題がありました。

target/test-classes フォルダーを確認すると、コンテキストが目的の場所にないことに気付く場合があります。少なくともそれは私が持っていたものです。

私は過去にそれを正しくするのに多くの問題を抱えていました(手動コピー以外に)。運が良ければ、テスト リソースのマークを外して、テスト リソースとして再マークしてみてください。次に、mvn clean を実行します。次に、テストを実行します。また、テスト ケースの構成で Make がトリガーされることを確認してください。これにより、テスト クラスでコンテキストが取得されました。また、テスト クラスの作業ディレクトリが正しいかどうかも確認してください。プロジェクトファイルを保存したディレクトリに設定されている場合がありました....

于 2015-02-19T14:00:58.873 に答える