合并文件任务AzureDevops

时间:2019-11-27 15:24:33

标签: powershell junit azure-devops

早上好

我正在尝试将两个.xml文件合并为PowerShell任务。

$testResultFiles = Get-ChildItem *.postman_collection.xml

dir

$filesNames = New-Object System.Collections.Generic.List[System.Object]

foreach($file in $testResultFiles)
{
        Write-Host $file.FullName

       $filesNames.Add($file.Name)
}

Write-Host junit-merge $filesNames 

junit-merge $filesNames

我得到一个例外:

  

错误:找不到文件       在getTestsuites(C:\ npm \ prefix \ node_modules \ junit-merge \ lib \ index.js:82:11​​)       在C:\ npm \ prefix \ node_modules \ junit-merge \ lib \ index.js:112:17

该消息是关于找不到文件。但是我看到使用

作为输出
  

dir

那些文件存在

1 个答案:

答案 0 :(得分:0)

问题是您要添加文件名称,而不是整个路径和文件名,例如全名

即您的原始代码:

Write-Host $file.FullName

$filesNames.Add($file.Name)

此代码尽管显示了整个路径,但您只是将文件名添加到列表中。因此,当junit-merge运行时,它将从当前位置运行,而不是预期的完整路径。

应该是:

Write-Host $file.FullName

$filesNames.Add($file.FullName)

编辑:

另一种想法可能是$fileNames对象被传入并解释为单个字符串参数,而不是适当的“空格分隔”参数列表,后者被解释为参数数组。

>

我们可以使用SplattingList手动“展开”为某些东西,通过使用@符号将其解释为单独的参数。

junit-merge @filesNames