forked from pester/Pester
-
Notifications
You must be signed in to change notification settings - Fork 0
/
It.ps1
36 lines (32 loc) · 1.32 KB
/
It.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function It($name, [ScriptBlock] $test)
{
$results = Get-GlobalTestResults
$margin = " " * $results.TestDepth
$error_margin = $margin * 2
$results.TestCount += 1
$output = " $margin$name"
$start_line_position = $test.StartPosition.StartLine
$test_file = $test.File
$line_count = -1
$failures = 0
$test_result = $true
foreach ( $line in $test.ToString().Split("`n;") ) {
$line_count++
$line=$line.trim()
if($line){
$test_result = Invoke-Expression $line
if ($test_result -and $test_result.GetType().FullName -eq "PesterFailure") {
$failures += 1
$results.FailedTests += $name
$output | Write-Host -ForegroundColor red
Write-Host -ForegroundColor red $error_margin"Failure at line: $($start_line_position + $line_count) in $test_file"
Write-Host -ForegroundColor red $error_margin$error_margin$line
$expected = $test_result.Expected
$observed = $test_result.Observed
Write-Host -ForegroundColor red $error_margin"Expected: $expected"
Write-Host -ForegroundColor red $error_margin"But was : $observed"
}
}
}
if($failures -eq 0) {$output | Write-Host -ForegroundColor green;}
}