Functions/Get-RPTestItem.ps1
<#
.SYNOPSIS Get all test items. .DESCRIPTION Call the GetTestItemAsync() or GetTestItemsAsync() methods on the service object to get all test items. The method will be invoked synchronously. #> function Get-RPTestItem { [CmdletBinding(DefaultParameterSetName = 'None')] [OutputType([ReportPortal.Client.Models.TestItem])] param ( # The report portal service. [Parameter(Mandatory = $true)] [ReportPortal.Client.Service] $Service, # Optional test item id. [Parameter(Mandatory = $false, ParameterSetName = 'Id')] [System.String] $Id, # Optional test item name. [Parameter(Mandatory = $false, ParameterSetName = 'Name')] [SupportsWildcards()] [System.String] $Name ) try { if ($PSCmdlet.ParameterSetName -eq 'Id') { $Service.GetTestItemAsync($Id).GetAwaiter().GetResult() } else { $testItems = @() $filterOption = [ReportPortal.Client.Filtering.FilterOption]::new() $filterOption.Paging = [ReportPortal.Client.Filtering.Paging]::new(1, 300) do { $result = $Service.GetTestItemsAsync($filterOption).GetAwaiter().GetResult() $filterOption.Paging.Number++ $testItems += $result.TestItems } while ($result.Page.Number -lt $result.Page.TotalPages) # Filter all test items by name if ($PSBoundParameters.ContainsKey('Name')) { $testItems = $testItems | Where-Object { $_.Name -like $Name } } Write-Output $testItems } } catch { ConvertFrom-RPException -ErrorRecord $_ | Write-Error } } |