首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sbt插件-自己的配置类路径不完整

sbt插件-自己的配置类路径不完整
EN

Stack Overflow用户
提问于 2016-11-10 16:23:52
回答 1查看 65关注 0票数 0

我想为一种新的测试创建一个sbt插件。为了保持简单,我创建了一个小型的模糊测试插件,类似于sbt文档中提到的插件。

我的插件类目前看起来如下:

代码语言:javascript
复制
package sbtfuzz

import sbt._, Keys._

object FuzzPlugin extends sbt.AutoPlugin {
  override def requires = plugins.JvmPlugin
  override def trigger = allRequirements

  object autoImport {
    lazy val Fuzz = config("fuzz") extend(Compile)
  }
  import autoImport._

  lazy val baseFuzzSettings: Seq[Def.Setting[_]] = Seq(
    test := {
      println("fuzz test")
    }
  )
  override lazy val projectSettings = inConfig(Fuzz)(baseFuzzSettings) ++ inConfig(Fuzz)(Defaults.compileSettings)
}

我在comaprison中向文档中的代码添加的惟一内容是编译代码的get任务的inConfig(Fuzz)(Defaults.compileSettings)

如果我执行sbt fuzz:compile,将编译src/fuzz/scala中的源代码。但是,如果源代码依赖于实际的项目代码(就像所有测试一样),那么编译失败,因为没有找到类。我想是因为fuzz:fullClasspath只有一个条目:

代码语言:javascript
复制
[info] * Attributed(.../fuzz/target/scala-2.10/sbt-0.13/fuzz-classes)

test:fullClasspath有项目类以及它中的依赖项:

代码语言:javascript
复制
[info] * Attributed(.../fuzz/target/scala-2.10/sbt-0.13/test-classes)
[info] * Attributed(.../fuzz/target/scala-2.10/sbt-0.13/classes)
[info] * Attributed(~/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.10.4.jar)
[info] * Attributed(~/.ivy2/cache/org.scala-sbt/sbt/jars/sbt-0.13.13.jar)
...

这样,test:compile就能够成功地编译测试类,而fuzz:compile则不能编译。

如何像配置fuzz配置那样配置test配置,包括所有的项目依赖关系?

谢谢!

编辑:,我发现了一个(在我看来)相当肮脏的解决方法:

代码语言:javascript
复制
lazy val baseFuzzSettings: Seq[Def.Setting[_]] = Seq(
  fullClasspath in Fuzz ++= (dependencyClasspath in Test).value,
  dependencyClasspath in Fuzz ++= (dependencyClasspath in Test).value,
  ...
)

有了这个,我可以成功地编译我的fuzz类。有什么更理智的方法吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-11-10 19:47:20

对于测试信任,请使用Defaults.testSettingsDefaults.testTasks。请注意,命令很重要:

代码语言:javascript
复制
inConfig(Fuzz)(Defaults.testSettings ++ Defaults.testTasks ++ baseSettings)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40532409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档