对于我的多项目构建,我正在尝试创建一个只导致scct:test的验证任务,然后按顺序执行scalastyle.我想scct:test来执行所有子项目,但不是顶层项目.(如果它是针对顶级项目执行的,我会从scct中"等待覆盖率报告超时",因为该项目中没有源代码和任何测试.)我想要做的是创建一个验证作为任务依赖于scct:test和scalastyle.事实证明这是相当巴洛克式的.这是我的顶级项目/目录中的Build.scala:
object MyBuild extends Build {
val verifyTask = TaskKey[Unit]("verify", "Compiles, runs tests via scct:test and then runs scalastyle")
val scctTestTask = (test in ScctPlugin.Scct).scopedKey
val scalastyleTask = PluginKeys.scalastyleTarget.scopedKey
lazy val root = Project("rootProject",
file("."),
settings = Defaults.defaultSettings ++
ScalastylePlugin.Settings ++
ScctPlugin.instrumentSettings ++
ScctPlugin.mergeReportSettings ++
Seq(
verifyTask in Global := {},
verifyTask <<= verifyTask.dependsOn(scctTestTask, scalastyleTask)
)
) aggregate(lift_webapp, selenium_tests)
lazy val subproject_1 = Project(id = "subproject_1", base = file("subproject_1"))
lazy val subproject_2 = Project(id = "subproject_2", base = file("subproject_2"))
} …Run Code Online (Sandbox Code Playgroud) 最近我参加了Keith Battochi关于类型提供程序的教程,其中他在MSDN教程中介绍了MiniCsv类型提供程序的变体.不幸的是,我的笔记本电脑不可用,所以我不得不手工写下代码.我相信我已经重新创建了类型提供者,但我得到了
error FS3033: The type provider 'CsvFileTypeProvider+CsvFileTypeProvider' reported an error: container type for 'CsvFileProvider.Row' was already set to 'CsvFileProvider.CsvFile,Filename="events.csv"
Run Code Online (Sandbox Code Playgroud)
当我查看代码时,我无法看到我如何将Row类型添加到容器两次(或者添加到其他容器中).删除选定的代码行没有帮助.
这是我在fsi中调用代码的方式:
#r "CsvFileTypeProvider.dll"
open CsvFileProvider
let eventInfos = new CsvFile<"events.csv">() ;;
Run Code Online (Sandbox Code Playgroud)
这是代码本身:
module CsvFileTypeProvider
open Samples.FSharp.ProvidedTypes
open Microsoft.FSharp.Core.CompilerServices
let getType str =
if System.DateTime.TryParse(str, ref Unchecked.defaultof<_>) then
typeof<System.DateTime>, (fun (str:Quotations.Expr) -> <@@ System.DateTime.Parse(%%str) @@>)
elif System.Int32.TryParse(str, ref Unchecked.defaultof<_>) then
typeof<System.Int32>, (fun (str:Quotations.Expr) -> <@@ System.Int32.Parse(%%str) @@>)
elif System.Double.TryParse(str, ref Unchecked.defaultof<_>) then
typeof<System.Double>, (fun (str:Quotations.Expr) -> <@@ System.Double.Parse(%%str) @@>)
else …Run Code Online (Sandbox Code Playgroud)