en-US/about_Blade.help.txt

TOPIC
    about_Blade
     
SHORT DESCRIPTION
    Blade is a testing tool for PowerShell inspired by [NUnit](http://nunit.org).
 
LONG DESCRIPTION
    Test fixtures are PowerShell scripts that begin with `Test-`. A test is any
    function in the test fixture script that begins with the Test verb.
         
    To get started, create a test fixture file:
 
        > New-Item -ItemType File Test-BladeDemo.ps1
 
    Now, open up your new test fixture, and start adding tests.
 
        function Test-ShouldRunThisTest
        {
            Assert-True $true
        }
 
    Save your test fixture, then execute it with `blade.ps1` and you should see output
    similar to this:
 
        > blade.ps1 Test-BladeDemo.ps1
 
           Count Failures Errors Ignored Duration
           ----- -------- ------ ------- --------
               1 0 0 0 00:00:00
     
    Test details are available after your tests finish in a global `$LastBladeResult`
    variable. This is a `Blade.RunResult` object. See `about_Blade_Objects` for more
    information.
 
        > $LastBladeResult
         
           Count Failures Errors Ignored Duration
           ----- -------- ------ ------- --------
               1 0 0 0 00:00:00
         
 
    Pretty easy. If all your tests have common setup/teardown functionality, create
    `Start-Test` and `Stop-Test` functions, which will get run once before and after
    each test, respectively:
 
        $tempDir = $null
         
        function Start-Test
        {
            $tempDir = New-TempDir
        }
         
        function Stop-Test
        {
            Remove-Item -Path $tempDir -Recurse
        }
         
        function Test-ShouldCreateTempDir
        {
            Assert-DirectoryExists $tempDir
        }
 
    Finally, if you have setup/teardown that needs to run once before/after all tests,
    create `Start-TestFixture` and `Stop-TestFixture` functions, which get run before
    any tests run and aftera ll tests run, respectively:
 
        $tempDir = $null
 
        function Start-TestFixture
        {
            # Import the PowerShell module we're testing.
            & (Join-Path -Path $PSScriptRoot -ChildPath '..\CoolestModuleEver\Import-CoolestModuleEver.ps1' -Resolve)
        }
 
        function Start-Test
        {
            $tempDir = New-TempDir
        }
 
        function Stop-Test
        {
            Remove-Item -Path $tempDir -Recurse
        }
 
        function Stop-TestFixture
        {
            Remove-Module 'CoolestModuleEver'
        }
 
        function Test-ShouldCreateTempDir
        {
            Assert-DirectoryExists $tempDir
        }
         
    ## Error Handling
     
    A test fails if one of its assertions fails (an assertion fails when it throws a
    `Blade.AssertionException` exception) or if it encounters a terminating error. In
    all other cases, a test passes.
 
    If a test, or the code you're testing, writes an error with `Write-Error`, your
    test will still pass. If you want to fail a test if there is an error, use the
    `Assert-NoError` assertion. Blade clears all errors from `$Error` before each test.
 
 
SYSTEM REQUIREMENTS
    PowerShell 3
 
 
INSTALLATION
    1. [Download the ZIP file from Bitbucket.](https://bitbucket.org/splatteredbits/blade/downloads)
    2. Unblock the zip file (right-click the .zip file, choose Properties, click
       "Unblock", then click "OK").
    3. Unzip the Blade module anywhere on your file system.
     
    You can now use Blade:
     
        PS> .\Blade\blade.ps1
     
     
SEE ALSO
    http://get-blade.org
    blade.ps1
    about_Blade_Assertions
    about_Blade_Objects