Skip to content

TestDrive

Angelo Yin edited this page Mar 13, 2014 · 20 revisions

TestDrive is a PSDrive for file activity limited to the scope of a single Describe or Context block.

A test may need to work with file operations and validate certain types of file activities. It is usually desirable not to perform file activity tests that will produce side effects outside of an individual test. Pester creates a PSDrive inside the user's temporary drive that is accessible via a names PSDrive TestDrive:. Pester will remove this drive after the test completes. You may use this drive to isolate the file operations of your test to a temporary store.

EXAMPLE

function Add-Footer($path, $footer) {
    Add-Content $path -Value $footer
}

Describe "Add-Footer" {
	$testPath="TestDrive:\test.txt"
	Set-Content $testPath -value "my test text."
	Add-Footer $testPath "-Footer"
	$result = Get-Content $testPath

    It "adds a footer" {
        (-join $result) | Should Be "my test text.-Footer"
    }
}

When this test completes, the contents of the TestDrive PSDrive will be removed.

Compare with literal path

Use Convert-Path cmdlet to compare regular paths with TestDrive paths.

$actualPathAsLiteral = "C:\Users\username\AppData\Local\Temp\pester\somefile.txt"
$expectedPathAsTestDrive = "TestDrive:\somefile.txt"
(Convert-Path -LiteralPath $actualPathAsLiteral) | Should Be $expectedPathAsTestDrive
Clone this wiki locally