Как запустить mstest с VSTEST.CONSOLE.EXE в powershell

#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. Отлично! Я боролся с этой точной проблемой, и это было точное решение для моих нужд.