Как передать параметры в тестовый скрипт PSUnit? - PullRequest
0 голосов
/ 27 июля 2011

Я использую PSUnit для тестирования в Powershell 2.0.Поскольку мои тесты должны подключаться к серверу базы данных, я хотел бы иметь возможность передать имя сервера и базы данных в сценарий тестирования.Это позволило бы разработчикам запускать тестовые сценарии на своем локальном компьютере с локальной базой данных, в то же время позволяя запускать их на сервере.База данных также может изменяться в зависимости от среды.

Сценарий PSUnit.Run, по-видимому, не позволяет включать параметры в имя сценария тестирования.Я что-то пропустил?Есть ли обходной путь для этого?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 17 января 2012

Почему бы вам просто не включить 2 переменные ([string]$ServerName & [string]$TargetDatabaseName) в файл 'profile.ps1' и использовать их в своих тестовых примерах. Они будут доступны там, и вы можете настроить их в любое время в файле ps1.

Это кажется более простым и интуитивно понятным, чем написание отдельного сценария для этой задачи.

Просто добавьте любую такую ​​информацию в профиль PowerShell.

0 голосов
/ 03 августа 2011

Единственный способ найти это - включить теги в начале моего тестового сценария, а затем найти и заменить правильные значения вместо этих тегов. Например, в моем случае мой тестовый скрипт включал этот код в верхней части скрипта:

[string]$ServerName=<ServerName>
[string]$TargetDatabaseName=<TargetDatabaseName>

Это буквальный код. Затем в свой сценарий, где я вызывал тесты, я включил этот код:

foreach ($testPSScript in Get-ChildItem "$testScriptDir\*.ps1") {
    (Get-Content $testPSScript.FullName) |
    ForEach-Object {$_ -replace "<ServerName>", "'$ServerName'"} |
    ForEach-Object {$_ -replace "<TargetDatabaseName>", "'$DatabaseName'"} |
    Set-Content $testPSScript.FullName -Force

    PSUnit.Run.ps1 -PSUnitTestFile "$testPSScript"
}

Вы должны помнить, чтобы каждый раз перезаписывать ваши тестовые сценарии исходной версией, в противном случае они будут включать значения, которые вы использовали в последнем запуске вместо тегов, и вы не сможете изменить значения .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...