小编goo*_*lie的帖子

SBT 可以与 jMockit 一起使用吗?

经过多次努力,我终于将一个大项目从 Maven 转换为 SBT。然而,剩下的问题之一是项目中的一些单元测试使用 jMockit,这在配置环境时可能有点难以维护。

具体来说,jmockitdependency/jar 有两个困难的要求:

  1. jmockit jar 必须出现在类路径中的junit jar之前
  2. 在许多 JVM 上,例如我正在使用的 OpenJDK,JVM 参数-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)

jmockit sbt

3
推荐指数
1
解决办法
598
查看次数

标签 统计

jmockit ×1

sbt ×1