经过多次努力,我终于将一个大项目从 Maven 转换为 SBT。然而,剩下的问题之一是项目中的一些单元测试使用 jMockit,这在配置环境时可能有点难以维护。
具体来说,jmockitdependency/jar 有两个困难的要求:
-javaagent:<path/to/jmockit.jar>是必需的如果这两个条件都不满足,我将面临错误:
[error] Test <mytestclass>.initializationError failed: java.lang.Exception: Method <mytestmethod> should have no parameters
[error] at mockit.integration.junit4.JMockit.<init>(JMockit.java:32)
Run Code Online (Sandbox Code Playgroud)
我想我最终成功地用 SBT 解决了第一个问题,但第二个问题我仍然遇到了麻烦。调试 SBT 日志没有显示有关分叉进程调用的足够详细信息,无法告诉我我的设置是否有效。但测试输出始终表明它不起作用。我有我认为的所有相关设置:
lazy val myproj = Project(
...
settings = otherSettings ++ Seq(
libraryDependencies ++= Seq(
"com.googlecode.jmockit" % "jmockit" % "1.7" % "test",
"junit" % "junit" % "4.8.1" % "test"
),
fork in Test := true,
javaOptions in test += "-javaagent:<hardcode-path-to-jmockit.jar>" …Run Code Online (Sandbox Code Playgroud)