#powershell #mstest #vstest.console.exe
#powershell #mstest #vstest.console.exe
Вопрос:
После прочтения и экспериментов с доступными сообщениями в Stack overflow я задаю этот вопрос.
Я изо всех сил пытаюсь запустить MSTEST в powershell
Вот моя попытка (очевидно, с помощью сообщений, доступных в stack overflow)
$testDLL = "C:AutomationTestsMy.Tests.dll"
$fs = New-Object -ComObject Scripting.FileSystemObject
$f = $fs.GetFile("C:Program Files (x86)Microsoft Visual Studio2017EnterpriseCommon7IDECommonExtensionsMicrosoftTestWindowvstest.console.exe")
$vstestPath = $f.shortpath
$arguments = " " $testDLL ' /TestCaseFilter:"TestCategory=FunctionalTests"'
Write-Host $arguments
amp; $vstestPath $arguments
Вывод на консоль:
PS C:UsersmyuserDesktopPowershell scripts> .exp5.ps1
C:AutomationTestsMy.Tests.dll /TestCaseFilter:"TestCategory=FunctionalTests"
Microsoft (R) Test Execution Command Line Tool Version 15.9.1
Copyright (c) Microsoft Corporation. All rights reserved.
VSTEST~1.EXE : The test source file "C:AutomationTestsMy.Tests.dll /TestCaseFilter:TestCategory=FunctionalTests" provided was not found.
At C:UsersmyuserDesktopPowershell scriptsexp5.ps1:7 char:1
amp; $vstestPath $arguments
~~~~~~~~~~~~~~~~~~~~~~~~
CategoryInfo : NotSpecified: (The test source... was not found.:String) [], RemoteException
FullyQualifiedErrorId : NativeCommandError
Usage: vstest.console.exe [Arguments] [Options] [[--] <RunSettings arguments>...]]
Description: Runs tests from the specified files.
Arguments:
[TestFileNames]
Run tests from the specified files. Separate multiple test file names
.
.
.
. etc
Если я запускаю обычную командную строку Windows, тесты выполняются без каких-либо проблем, но когда я попытался запустить из powershell, получаю указанную выше ошибку.
может кто-нибудь помочь мне, что не так с моим сценарием.
Если мой сценарий сложный или не имеет смысла, пожалуйста, извините меня, поскольку я новичок в powershell. Моя цель — использовать приведенный выше сценарий powershell в пошаговом процессе развертывания Octopus для запуска тестов. Если кто-нибудь знает простой или лучший способ сделать это, пожалуйста, поделитесь…
Спасибо
Комментарии:
1. хотя я очень, очень смущен вашим использованием
Scripting.FileSystemObject
[ grin ], я сосредоточусь на$arguments
переменной. обычно в этой ситуации можно использовать массив строк. то, что вы используете, — это строка . насколько я помню, анализатор CDM разбил бы эту строку на отдельные элементы… powershell этого не сделает. итак, попробуйте использовать массив этих строк аргументов вместо одной строки.
Ответ №1:
Спасибо всем, я использовал приведенный ниже код, чтобы заставить его работать.
$command = "C:Program Files (x86)Microsoft Visual Studio2017EnterpriseCommon7IDECommonExtensionsMicrosoftTestWindowvstest.console.exe"
$arguments = @('C:AutomationTestsMy.Tests.dll', '/TestCaseFilter:"TestCategory=FunctionalTests"')
amp; $command $arguments
@Leee_Dailey — Извините за путаницу. Я просто пытаюсь запустить тесты из встроенного исходного кода Octopus Deploy (OD) для шаблона «Запустить скрипт» с помощью команд powershell. Я начал экспериментировать с PowerShell, чтобы заставить его работать локально перед использованием в OD. При выполнении поиска прямого ответа не найдено. Я получил когда-нибудь и понял это. Надеюсь, этот код будет кому-то полезен. Спасибо.
Комментарии:
1. Спасибо, что просмотрели все за это, много высоких голосов, которые не подтвердились.
2. Отлично! Я боролся с этой точной проблемой, и это было точное решение для моих нужд.