Javaプロジェクトを作成しています。このプロジェクトでは、簡単なJUNITテストケースを作成しています。applicatinoContext.xmlファイルをルートJavaソースディレクトリにコピーしました。 StackOverflowでここで読んだ推奨設定のいくつかを試してみましたが、それでも同じエラーが発生します。このエラーは、プロジェクトがJavaプロジェクトであり、Webプロジェクトではないために発生していますか? 、それとも重要ですか?どこで間違っているのかわかりません。
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"C:/projs/sortation/src/main/Java/applicationContext.xml"})
// Also tried these settings but they also didnt work,
//@ContextConfiguration(locations={"classpath:applicationContext.xml"})
//@ContextConfiguration("classpath:applicationContext.xml")
@Transactional
public class TestSS {
@Autowired
private EmsDao dao;
@Test
public void getSites() {
List<String> batchid = dao.getList();
for (String s : batchid) {
System.out.println(s);
}
}
}
Maven(src/main/Java)
。この場合、applicationContext.xml
ファイルのsrc/main/resources
ディレクトリ。クラスパスディレクトリにコピーされ、次のコマンドでアクセスできるはずです。
@ContextConfiguration("/applicationContext.xml")
Spring-Documentation から:プレーンパス(「context.xml」など)は、テストクラスと同じパッケージからのクラスパスリソースとして扱われます定義されています。スラッシュで始まるパスは、完全修飾クラスパスの場所、たとえば「/org/example/config.xml」として扱われます。
したがって、クラスパスのルートディレクトリにあるファイルを参照するときは、スラッシュを追加することが重要です。
絶対ファイルパスを使用する場合は、「file:C:...」を使用する必要があります(ドキュメントを正しく理解している場合)。
私は同じ問題を抱えていて、テストには次のプラグインを使用していました。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.9</version>
<configuration>
<useFile>true</useFile>
<includes>
<include>**/*Tests.Java</include>
<include>**/*Test.Java</include>
</includes>
<excludes>
<exclude>**/Abstract*.Java</exclude>
</excludes>
<junitArtifactName>junit:junit</junitArtifactName>
<parallel>methods</parallel>
<threadCount>10</threadCount>
</configuration>
</plugin>
テストはIDE(Eclipse sts)で正常に実行されていましたが、コマンドmvn testを使用すると失敗しました。
多くの試行錯誤の後、解決策は並列テストを削除することであると考えました。上記のプラグイン構成から次の2行を削除します。
<parallel>methods</parallel>
<threadCount>10</threadCount>
これが誰かを助けることを願っています!
during bootstrapping my spring project
を実装するクラスを使用するApplicationListener<ContextRefreshedEvent>
およびonApplicationEvent
関数内で例外をスローするため、この問題に直面しました
そのため、アプリケーションbootstrapポイントが例外をスローしないことを確認してください
私の場合、テストに maven surefire plugin を使用していたので、テストプロセスをデバッグするにはこのコマンドを使用します
mvn -Dmaven.surefire.debug test