运行测试时,FAKE指定NUnit命名空间/ Fixture

时间:2014-10-31 17:41:39

标签: f# nunit f#-fake

在我的Powershell脚本(PSAKE)中,我可以指定在执行NUnit测试运行器时运行的命名空间/夹具。

task UnitTest -Depends Compile -Description "Runs only Unit Tests" {
    Invoke-Nunit "$buildOutputDir\$testAssembly.dll" "$testAssembly.Unit" $buildArtifactsDir
}

task IntegrationTest -Depends Compile -Description "Runs only Integration Tests" {
    Invoke-Nunit "$buildOutputDir\$testAssembly.dll" "$testAssembly.Integration" $buildArtifactsDir
}

task FunctionalTest -Depends Compile -Description "Runs only Functional Tests" {
    Invoke-Nunit "$buildOutputDir\$testAssembly.dll" "$testAssembly.Functional" $buildArtifactsDir
}

这允许我有三个输出

Unit-TestResults.xml
Integration-TestResults.xml
Functional-TestResults.xml

我正在切换到FAKE,因为维护起来要干净得多,但我无法弄清楚如何为我的测试指定灯具。

IE:现在我有

// Run Tests
Target "Tests" (fun _ ->
    testDlls 
    |> NUnit (fun p -> 
        {p with 
            DisableShadowCopy = true;
            OutputFile = artifactDir + "/TestResults.xml"
    })
)

但是这会运行所有测试并将其放入单个输出中。我真的想指定Fixture,并能够将它全部拆分。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

最新版本的FAKE增加了对Fixture参数的支持。你应该能够做到:

Target "Tests" (fun _ ->
    testDlls 
    |> NUnit (fun p -> 
        {p with 
            Fixture ="Namespace.Unit"
            DisableShadowCopy = true;
            OutputFile = artifactDir + "/Unit-TestResults.xml"
    })
    testDlls 
    |> NUnit (fun p -> 
        {p with 
            Fixture ="Namespace.Integration"
            DisableShadowCopy = true;
            OutputFile = artifactDir + "/Integration-TestResults.xml"
    })
    testDlls 
    |> NUnit (fun p -> 
        {p with 
            Fixture ="Namespace.Functional"
            DisableShadowCopy = true;
            OutputFile = artifactDir + "/Functional-TestResults.xml"
    })
)