【问题标题】:How to combine sbt continuous testing with eclipse scala ide?如何将 sbt 连续测试与 eclipse scala ide 结合起来?
【发布时间】:2013-03-25 21:15:40
【问题描述】:

我在Eclipse Scala IDE 中进行编辑,并使用sbt 中的~ test 在单独的屏幕上运行我的测试。我的测试是使用specs2 编写的。

这给了我双重编译,有时 Eclipse 仍在构建,而 sbt 开始启动。

为了解决这个问题,我关闭了自动构建,但这也消除了 Eclipse 中漂亮的编译器警告和错误。

有没有办法在没有双倍编译时间的情况下两者兼得?

编辑

我想最好的方法(或者可能是唯一的方法)是让sbt 运行测试而不编译它们。我尝试了test:run 命令,但这给了我以下错误:

java.lang.RuntimeException: No main class detected.
    at scala.sys.package$.error(package.scala:27)
    at sbt.Defaults$$anonfun$runTask$1$$anonfun$apply$27$$anonfun$13.apply(Defaults.scala:519)
    at sbt.Defaults$$anonfun$runTask$1$$anonfun$apply$27$$anonfun$13.apply(Defaults.scala:519)
    at scala.Option.getOrElse(Option.scala:108)
    at sbt.Defaults$$anonfun$runTask$1$$anonfun$apply$27.apply(Defaults.scala:519)
    at sbt.Defaults$$anonfun$runTask$1$$anonfun$apply$27.apply(Defaults.scala:518)
    at sbt.Scoped$$anonfun$hf5$1.apply(Structure.scala:581)
    at sbt.Scoped$$anonfun$hf5$1.apply(Structure.scala:581)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:49)
    at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311)
    at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:41)
    at sbt.std.Transform$$anon$5.work(System.scala:71)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232)

我如何在 Eclipse 编译文件时使用 ~ test:run

【问题讨论】:

    标签: scala sbt scala-ide


    【解决方案1】:

    没有双重编译,并且仍然在 Eclipse 中出现所有警告是不可能的。

    但是您可以将 Eclipse 配置为不踩到 sbt 的脚趾。编译时不必使用相同的输出文件夹。

    在项目Properties > Java Build Path > Source中,选择测试源文件夹的Output folder,并将位置更改为target/eclipse/test-classes之类的东西。

    这样,Scala IDE 不会接触 sbt 创建的类文件。

    您可能需要对主源文件夹执行相同的操作。

    【讨论】:

    • 很棒的提示。问题是我经常从sbt 生成我的Eclipse 项目,重置这些设置。我想我必须找到一种方法来运行测试而不从sbt 编译它们。
    【解决方案2】:

    对于当前的sbteclipse 版本,您可以使用以下设置:

    EclipseKeys.eclipseOutput := Some(".target")
    

    文档可以在这里找到:Using sbteclipse

    【讨论】:

      猜你喜欢
      • 2018-09-02
      • 2014-05-25
      • 2012-01-18
      • 2016-05-24
      • 1970-01-01
      • 1970-01-01
      • 2012-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多