为了让问题尽可能短,我只需要知道是否有一种方法可以在启动激活器时直接从命令行将fork设置为false,而不是按照以下方式对其进行硬编码" fork in Test:= false "来自基于Play-framework 2.4的项目中的 build.sbt 。
__________________以下所有内容均适用于进一步背景___________________
我正在维持"遗产"基于Play框架版本2.4的项目,并一直在尝试配置我的IntelliJ环境以启用单元测试的调试。为了实现这一点,我创建了2个运行配置,第一个在调试模式下启动激活器并将其所有输出管道传输到IntelliJ控制台,第二个将调试器连接到以前启动的jvm。然后,我可以根据激活器的提示自由运行和调试任何测试。
为了让调试器工作,我必须将以下内容添加到build.sbt中:
fork in Test := false
允许使用我的IntelliJ项目设置进行调试,因为我已将其正确配置为采用我的" conf / test-config.conf "在启动激活剂时考虑到。但是,当我只是运行"激活测试"从本机命令行控制台,,fork选项设置为false ,激活器忽略我的 test-config.conf 文件(显然配置为单元测试调整配置),而是加载原始应用配置文件" application.conf "导致我的测试因各种冲突而失败。即使在我的 build.sbt :
中使用以下配置,也会发生这种情况javaOptions in Test += "-Dconfig.file=conf/test-application.conf"
评论" fork in Test:= false "我从本机控制台启动测试时修复了问题(单元测试运行正常),我的IntelliJ启动配置也成功运行测试,但问题是它失去了调试代码的能力,这实际上是整个第一名。
这是我目前使用IntelliJ在调试模式下启动激活器的命令:
java -Dactivator.home=<activator-home-path> -Xms1024m -Xmx1024m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=256m -Dsbt.override.build.repos=true -Dconfig.file=conf/test-application.conf -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9990 -jar <activator-jar-path>
答案 0 :(得分:-1)
使用 sbt :
时,只需使用以下命令即可sbt "set fork in Test := false" test
对于激活器,您可以尝试以下操作:
将此添加到您的build.sbt:
fork in Test := Option(System.getProperty("fork")) match {
case Some("false") => false
case _ => true
}
然后再运行以下命令:
activator -Dfork=false test