Я хочу сделать следующее в тесте XUnit:
- запустить скрипт PS для запуска сайта на IIS
- вернитесь в тестовый класс и выполните набор тестов Selenium для сайта
Я могу достаточно легко запустить сайт через PS, но процесс блокируется - если я закрою окно PS, тест XUnit продолжится, но IIS, очевидно, остановился, поэтому тест не пройден.
Как запустить процесс IIS и продолжить тест? Мой скрипт PS ниже.
$iisExpressExe = '"c:\Program Files\IIS Express\iisexpress.exe"'
$path = "..\..\..\.vs\config\applicationhost.config"
$site = "SITE NAME"
$apppool = "Clr4IntegratedAppPool"
$params = "/config:$path /site:$site"
get-process | where { $_.ProcessName -like "IISExpress" } | stop-process
$command = "$iisExpressExe $params"
cmd /c start cmd /k "$command"
И вызывающий C #:
string script = File.ReadAllText("Boot.ps1");
PowerShell shell = PowerShell.Create();
shell.AddScript(script);
shell.BeginInvoke();
Thread.Sleep(2000);
_driver = new ChromeDriver
{
Url = "http://localhost:56565/umbraco"
};
// do tests here
_driver.Dispose();
shell.Stop();
Это работает, но не утилизирует оболочку ...