编辑以显示Fyodor指出的忽略返回和产生的错误

我有一个.fsx文件,其中有几个可以按预期工作的目标,但是我无法获得OpenCover可以工作的目标。这是我对目标代码的要求:

Target "Coverage" (fun _ ->
  OpenCover
    (fun p -> { p with ExePath   = "./packages/OpenCover.4.6.519/tools/OpenCover.Console.exe"
                   TestRunnerExePath = "./packages/Machine.Specifications.Runner.Console.0.10.0-Unstable0005/tools/mspec-clr4.exe"
                   Output = reportDir + "MspecOutput.xml"
                   Register = "-register:user"
          }
    )
    testDir @@ "FakeTest2UnitTesting.dll" + "--xml " + reportDir + "MspecOutput.xml"  |> ignore
)

但是我现在收到以下构建错误:

build.fsx(45,3):错误FS0039: undefined 值或构造函数“OpenCover”。也许您需要以下之一:
OpenCoverHelper
NCover

我不知道我在做什么错。有人可以告诉我如何从FAKE API使用OpenCoverHelper吗?
谢谢

最佳答案

经过大量的搜寻,我终于找到了解决方案。基本的问题是我没有打开OpenCoverHelper。我假设它被包含在FAKE中,就像在Api中一样,并且没有文档说明其他任何内容。因此,这是我使用的代码:

// include Fake lib
#r @"packages/FAKE.4.61.2/tools/FakeLib.dll"
open Fake
open Fake.OpenCoverHelper

Target "Coverage" (fun _ ->
  OpenCover (fun p -> { p with
                          ExePath = "./packages/OpenCover.4.6.519/tools/OpenCover.Console.exe"
                          TestRunnerExePath = "./packages/Machine.Specifications.Runner.Console.0.10.0-Unstable0005/tools/mspec-clr4.exe"
                          Output = "./report/MspecOutput.xml"
                          Register = RegisterUser
                      })
   "./test/FakeTest2UnitTesting.dll + --xml ./report/MspecOutput.xml"

)

希望这会在将来对某人有所帮助。

关于f# - 无法让OpenCover伪造,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43955000/

10-14 11:59