使用dotCover进行代码覆盖 - 伪造F#MAKE

时间:2017-03-24 04:05:15

标签: f# f#-interactive f#-3.0 f#-fake

我正在尝试在FAKE中使用dotCover。我收到错误,即DotCoverNUnit is not defined。我认为这是包的问题。

这是我在FAKE中的DotCover代码:

let filters = ""
Target "TestCoverage" (fun _ ->
    !! ("D:/Test/Project/Project1/UnitTests/UnitTest.dll")
        |> DotCoverNUnit (fun p -> 
            { p with
                Output = testDir @@ "NUnitDotCover.snapshot"
                Filters = filters }) nunitOptions
)

请告诉我如何在Fake中安装DotCover或如何使用它。这将非常有帮助。

1 个答案:

答案 0 :(得分:1)

Fake.DotCover模块未自动打开,因此只有在脚本顶部附近open Fake.DotCover后,其功能才可用。

不幸的是,FAKE API文档目前不太善于告诉您哪些模块是自动打开的,哪些模块需要open (modulename)才能公开其功能。

更新:您应该致电DotCoverNUnit的方式如下:

let filters = ""
Target "TestCoverage" (fun _ ->
    !! ("D:/Test/Project/Project1/UnitTests/UnitTest.dll")
        |> DotCoverNUnit
            (fun p -> { p with Output = testDir @@ "NUnitDotCover.snapshot"
                               Filters = filters })
            (fun nunitOptions -> nunitOptions)
)

或者,如果您想更改某些NUnit选项:

let filters = ""
Target "TestCoverage" (fun _ ->
    !! ("D:/Test/Project/Project1/UnitTests/UnitTest.dll")
        |> DotCoverNUnit
            (fun dotCoverOptions ->
                 { dotCoverOptions with Output = testDir @@ "NUnitDotCover.snapshot"
                                        Filters = filters })
            (fun nunitOptions ->
                 { nunitOptions with ExcludeCategory = "Manual,LongRunning"
                                     DisableShadowCopy = true })
)

有关从FAKE内部获得的NUnit选项的完整列表,请参阅http://fsharp.github.io/FAKE/apidocs/fake-nunitcommon-nunitparams.html