Я пишу систему на C#, в которой есть много функций для тестирования. Одной из функций является набор пользовательских командлетов PowerShell для управления моей системой.
Я использую pester (v5) для тестирования своих командлетов, и у меня будет много тестовых случаев для множества сценариев, которые я хочу протестировать.
Я могу успешно использовать приставание, но я не могу получить какие-либо отладочные данные из тестов - только отчет о тестировании. В отчете о тестировании можно увидеть, что проходит, а что нет, но если у меня есть сбой, я хочу иметь возможность выводить результаты, которые могут дать мне контекст того, что идет не так.
Я перепробовал все настройки PesterConfiguration, которые только мог придумать, но безрезультатно, например.
$PesterPreference = [PesterConfiguration]::Default
#$PesterPreference.Output.Verbosity = "Diagnostic"
$PesterPreference.Debug.WriteDebugMessages = $true
#$PesterPreference.Debug.WriteDebugMessagesFrom = "*"
В качестве примера представьте, что у меня есть командлет get-foo
, который возвращает объект со свойством Thing
, которое должно иметь значение "Bar"
.
Я могу написать тестовый тест, чтобы проверить это, но я хотел бы иметь возможность выводить возвращаемый объект как часть теста, чтобы увидеть что-то вроде:
Name Value
---- -----
Thing Bar
Other 124
Describe 'Test My CmdLet' {
It 'get-foo should return bar' {
$obj = get-foo
write-output $obj
$obj | Should -Not -BeNullOrEmpty
$obj.Thing | Should -Be "Bar"
}
}
Без возможности получить результат мне приходится реконструировать тестовую настройку и структуру вне приставания непосредственно в PowerShell, что является болезненным процессом.
Если у кого-нибудь есть какие-либо советы о том, как получить мой вывод, то я был бы признателен за совет.
Спасибо,
Дэйвид