К сожалению, кажется, что у Pester нет утверждения FileContentMatchExactlyMultiline
в данный момент, но, глядя на то, как работает FileContentMatchMultiline
, получается следующее:
$succeeded = [bool] ((& $SafeCommands['Get-Content'] $ActualValue -Delimiter ([char]0)) -match $ExpectedContent)
Так что, похоже, вы могли бы просто свернуть свой собственный эквивалент этого, сделав это в качестве обходного пути:
Describe 'MyTests' {
It "Has all the lines below, but case sensitive" {
$matchstring = @'
$var1 = Line one blah blah blah
$var2 = Line two blah blah blah
$var3 = Line three blah blah blah
'@
Get-ChildItem $directoryOfFilesToCheck | ForEach-Object {
$ActualValue = (Get-Content $_.FullName -Delimiter [char]0)
$ActualValue -cmatch $([regex]::escape($matchstring)) | Should -Be $True
}
}
}
Это просто переключает -match
на -cmatch
, что делает его чувствительным к регистру.
Другой вариант - использовать -MatchExactly
assertion, поместив содержимое файла в $ActualValue
, как указано выше:
$ActualValue | Should -MatchExactly $([regex]::escape($matchstring))
Отправка утверждения FileContentMatchExactlyMultiline
в Pester не похоже на то, что это будет так много работы на основе вышеизложенного. Здесь стоит добавить проблему: https://github.com/pester/Pester/issues