playframework-2.0 - 使用 SCCT 计算代码覆盖率时,配置文件不在 Play Framework 2.0 类路径中

标签 playframework-2.0 classpath code-coverage sbt scct

我将 Play Framework 2.0 配置为使用 SCCT 进行覆盖,并且可以使用 play scct:cover 运行 scct .

但是,我的测试无法读取任何配置文件,因为配置文件不在类路径中。也就是说,我正在使用类型安全的 ConfigFactory 加载配置文件,但我收到以下错误: com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'KEY.NAME'

play testplay run工作得很好。

有什么方法可以强制 Play 的 Build.scala 添加 conf/类路径的目录?

我的 plugins.sbt 文件的相关部分如下所示: resolvers += "Typesafe repository" at "<a href="http://repo.typesafe.com/typesafe/releases/" rel="noreferrer noopener nofollow">http://repo.typesafe.com/typesafe/releases/</a>"

<p>resolvers += Classpaths.typesafeResolver</p> <p>resolvers += "scct-github-repository" at "<a href="http://mtkopone.github.com/scct/maven-repo" rel="noreferrer noopener nofollow">http://mtkopone.github.com/scct/maven-repo</a>"</p> <p>addSbtPlugin("reaktor" % "sbt-scct" % "0.2-SNAPSHOT")</p>

addSbtPlugin("play" % "sbt-plugin" % "2.0.4")

我的 Build.scala 的相关部分如下所示: lazy val additionalSettings = Defaults.defaultSettings ++ seq(ScctPlugin.instrumentSettings: _*)

<pre><code>val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA, settings = additionalSettings).settings( testOptions in Test := Nil, parallelExecution in test := false ) </code></pre>

谢谢!

最佳答案

这可能不是 Play 特有的。 scct 插件可能应该在 ScctTest 配置中包含 Test 配置中的资源,就像它对其他类路径元素所做的那样。您可以通过将 conf 目录添加到 scct 的非托管资源目录列表来明确地自己做:

unmanagedResourceDirectories in ScctPlugin.ScctTest <+= baseDirectory( _ / "conf")

关于playframework-2.0 - 使用 SCCT 计算代码覆盖率时,配置文件不在 Play Framework 2.0 类路径中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15368681/

相关文章:

scala - 如何使用列表映射呈现表单

java - Play 2.1.1 - 从 Controller 传递映射值列表时出现模板错误

java - 当 Json 在 Play Framework 中太大时,Json 为 null

bash - 为什么 "No such file or directory"出现在我的环境变量中?

c# - 抛出 Visual Studio 2015 代码覆盖率 - 无法启用约束

playframework-2.0 - Play Framework 2.0 在服务器启动时安排 Akka Actor

java扩展机制

java - WEB-INF/classes 包含我的类,扩展名为 .class 和 .java

java - 无论如何,这个条件是否可以被评估为 "true"?

Go:没有对包进行测试时的错误覆盖率