У меня есть массив, в который я хочу поместить имена файлов, поэтому, когда я вызываю pester и publi sh результаты моих тестов, я получаю каждый тест с соответствующим именем
. иметь это:
$file = "D:\ParametrosExcel.xlsx"
$objExcel = New-Object -ComObject Excel.Application
$workbook = $objExcel.Workbooks.Open($file)
$sheet = $workbook.Worksheets.Item(1)
$objExcel.Visible = $false
$rowMax = ($sheet.UsedRange.Rows).count
$colMax = ($sheet.UsedRange.Columns).count
[System.Collections.ArrayList]$data = @(
)
for ($row = 3; $row -le $rowMax; $row++) { # salta header
$params = @()
[System.Collections.ArrayList]$nameTests=@()
for ($col = 1; $col -le $colMax; $col++) {
#Si la celda es igual a nulo, no se agrega al array de parametros
if ($sheet.Cells.Item($row, $col).Value()-ne $null){
[System.Collections.ArrayList]$params += $sheet.Cells.Item($row, $col).Value()
}
}
# si el parametro en la posición uno igual a 1 procede si no se brinca a la linea siguiente
if ($params[0] -ne 0) {
# muestra output
$params.Remove($params[0])
$nombrePrueba=$params[0]
Write-Host "NOMBRE DE ESCENARIO" $nombrePrueba
$nameTests.Add($nombrePrueba)
$params.Remove($params[0])
#Write-Output "Resultado1" -f ($params -join '; ').TrimEnd(", ")
#Write-Output "Resultado2" -f ($params -join '; ').TrimEnd(", ")
'Parametros: {0}' -f ($params -join ' ').TrimEnd(", ")
$data.Add($params)
}
}
$objExcel.Quit()
# cierra elementos usados
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($sheet) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($workbook) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($objExcel) | Out-Null
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
$contador=0
foreach ($parametro in $data )
{
$nombre= $nameTests[$contador]
Invoke-Pester -Script @{Path = 'C:\Turing\Tests\Azure.ps1'; Parameters = @{parameter=$parametro}} -OutputFile "C:\Turing\Test Results\'$nombre'.xml" -OutputFormat "NUnitXML"
$contador+=1
}
Извините, что комментируется на испанском sh, но здесь
Write-Host "NOMBRE DE ESCENARIO" $nombrePrueba
$nameTests.Add($nombrePrueba)
это где я получаю имя, которое я хочу, и я добавляю его в список массивов, и он добавляет его два раза, но когда я печатаю его вот так
$nameTest[0]
$nameTest[1]
, я получаю только один, но нулевой индекс меняется с этого "prueba1" на "prueba3", я не знаю что я могу делать не так Спасибо за помощь
и за файл, который получает имя. xml, я пытался обозначить это как '$ filename'. xml и ничего, и я знаю, что он просто пропускает некоторые ps трюк, ха-ха, но я новичок ie в powershell, я надеюсь, что кто-то может мне помочь, пожалуйста, большое спасибо за вашу помощь Приветствую!