PowerMock には ScalaTest のサポートがないため、JUnit を使用して ScalaTest クラスを実行しようとしています@RunWith[classOf[JUnitRunner]]
。PowerMock wikiで詳しく説明されているように、Maven を使用すると、これをサポートするために熱心にロードするように javaagent モジュールを構成できます。同じ結果を得るには、SBT で何をする必要がありますか?
name := "my-project"
version := "1.0"
scalaVersion := "2.10.2"
libraryDependencies ++= Seq(
// ... other dependencies above ...
"org.powermock" % "powermock-api-mockito" % "1.5.1" % "test",
"org.powermock" % "powermock-module-javaagent" % "1.5.1" % "test",
"org.powermock" % "powermock-module-junit4-rule-agent" % "1.5.1" % "test",
"com.novocode" % "junit-interface" % "0.10" % "test->default"
)
示されているように、このプロジェクトにはエラーがあります。
[error] Caused by: java.lang.IllegalStateException: PowerMockRule can only be used with the system classloader but was loaded by sbt.classpath.ClasspathUtilities$$anon$1@1cee593
[error] at org.powermock.modules.junit4.rule.PowerMockRule.<clinit>(PowerMockRule.java:28)
[error] ... 55 more
SBT には、テストを実行するための独自のクラスローダーがあり、PowerMock が実行する必要があることと競合しているようです。