2

コントローラーとフィルターをテストするために SpringJUnitRunner を利用するプロジェクトがあります。テストを正常に実行すると、すべて正常に実行されます。ただし、PIT でテストを実行すると、SpringJUnitRunner を使用するすべてのテストで次の例外が発生します。

java.lang.IllegalStateException: Failed to load ApplicationContext
at org.springframework.test.context.CacheAwareContextLoaderDelegate.loadContext(CacheAwareContextLoaderDelegate.java:99)
at org
11:53:55 PM PIT >> FINE : SLAVE : .springframework.test.context.DefaultTestContext.getApplicationContext(DefaultTestContext.java:101)
at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:155)
at org.springfr
11:53:55 PM PIT >> FINE : SLAVE : amework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:100)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:319)
at org.springframework.test.context.j
11:53:55 PM PIT >> FINE : SLAVE : unit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:212)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
at org.junit.internal.runners.model.ReflectiveCallable.run
11:53:55 PM PIT >> FINE : SLAVE : (ReflectiveCallable.java:12)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:232)
a
11:53:55 PM PIT >> FINE : SLAVE : t org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.ru
11:53:55 PM PIT >> FINE : SLAVE : nners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.springframework.test.context.junit4.statements.RunBeforeT
11:53:55 PM PIT >> FINE : SLAVE : estClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at
11:53:55 PM PIT >> FINE : SLAVE :  org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:175)
at org.pitest.junit.adapter.CustomRunnerExecutor.run(CustomRunnerExecutor.java:42)
at org.pitest.junit.adapter.AdaptedJUnitTestUnit.execute(AdaptedJUni
11:53:55 PM PIT >> FINE : SLAVE : tTestUnit.java:85)
at org.pitest.coverage.execute.CoverageDecorator.execute(CoverageDecorator.java:50)
at org.pitest.execute.containers.UnContainer.submit(UnContainer.java:45)
at org.pitest.execute.Pitest$3.run(Pitest.java:182)
at java.lang.Thread.run(
11:53:55 PM PIT >> FINE : SLAVE : Thread.java:662)
Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Only one AsyncAnnotationBeanPostProcessor may exist within the context.

これらの同じテストのコード カバレッジに Emma を使用しても問題が発生したため、Jacoco に切り替える必要があったことに注意してください。

SpringJUnitRunner と PIT の間に既知の非互換性はありますか、またはこれら 2 つがうまく連携できるようにするために行うことができる何らかの構成変更はありますか?

助けてくれてありがとう。

4

0 に答える 0