Chase Florell
Chase Florell

Reputation: 47387

FAKE specify NUnit Namespace/Fixture when running tests

In my Powershell script (PSAKE), I have the ability to specify the Namespace/Fixture to run when I execute the NUnit test runner.

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
}

This allows me to have three outputs

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

I'm in the process of switching over to FAKE because it's just so much cleaner to maintain, however I can't figure out how to specify the Fixture for my test.

IE: right now I have

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

But this runs ALL the tests and drops it into a single output. I'd really like to specify the Fixture, and be able to split it all up. Is there a way to do this?

Upvotes: 1

Views: 403

Answers (1)

Krzysztof Cieslak
Krzysztof Cieslak

Reputation: 1735

Newest version of FAKE added support for Fixture parameter. You should be able to do:

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"
    })
)

Upvotes: 1

Related Questions