Visual studio VsTest不使用powershell生成的参数运行
我编写了一个简单的powershell脚本,使用stackover和其他地方的一些帮助来生成所有测试DLL列表Visual studio VsTest不使用powershell生成的参数运行,visual-studio,unit-testing,powershell,testing,jenkins-plugins,Visual Studio,Unit Testing,Powershell,Testing,Jenkins Plugins,我编写了一个简单的powershell脚本,使用stackover和其他地方的一些帮助来生成所有测试DLL列表 { cd "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow" $sourceDirectory = "D:\workspace\SolutionDir" $files = get-childitem $so
{
cd "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow"
$sourceDirectory = "D:\workspace\SolutionDir"
$files = get-childitem $sourceDirectory -recurse -include "*.Test*.dll" | select -expand FullName | where {$_ -like "*.Test*.dll"}
foreach ($file in $files)
{
$cFiles = $cFiles + $file.trim() + " "
}
$cFiles = $cFiles -replace ".{}$" #drop last 1 chars
echo $cFiles
$argumentList = @("$cFiles", "/framework:framework45", "/platform:x64")
vstest.console.exe $argumentList
}
但我犯了个错误
错误:测试源文件“D:\workspace\SolutionDir\Proj1.test\bin\x64\Release\Proj1.test.dll D:\workspace\SolutionDir\Proj2.test\bin\x64\Release\Proj2.test.dll
未找到D:\workspace\SolutionDir\Proj3.Test\bin\x64\Release\Proj3.Test.dll”
当我回显参数列表时,删除空格并手动键入,然后将命令复制回powershell,它就可以工作了。我怀疑这与字符串的编码有关。但我不知道如何改变它或使它工作
非常感谢您提供的任何帮助。我认为问题在于您的vstest需要将每个文件名作为参数,但您将所有文件作为1传递。你能试试这个吗
{
cd "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow"
$sourceDirectory = "D:\workspace\SolutionDir"
$files = get-childitem $sourceDirectory -recurse -include "*.Test*.dll" | select -expand FullName | where {$_ -like "*.Test*.dll"}
$argumentList = @()
foreach ($file in $files)
{
$argumentList += $file
}
$argumentList += "/framework:framework45"
$argumentList += "/platform:x64"
vstest.console.exe $argumentList
}
如果这对您不起作用,那么您可能不应该解析get childitem的结果
试试这个
{
cd "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow"
$sourceDirectory = "D:\workspace\SolutionDir"
$files = get-childitem $sourceDirectory -recurse | where {$_ -like "*.Test*.dll"}
$argumentList = @()
foreach ($file in $files)
{
$argumentList += $file.FullName
}
$argumentList += "/framework:framework45"
$argumentList += "/platform:x64"
vstest.console.exe $argumentList
}
这不是一个答案,但它可以教你如何回答自己的问题。