diff --git a/__tests__/AddTrendlinesToAChart.tests.ps1 b/__tests__/AddTrendlinesToAChart.tests.ps1 index afc7f8e..18bf7e4 100644 --- a/__tests__/AddTrendlinesToAChart.tests.ps1 +++ b/__tests__/AddTrendlinesToAChart.tests.ps1 @@ -1,4 +1,7 @@ -Describe "Test adding trendlines to charts" { +Import-Module $PSScriptRoot\..\ImportExcel.psd1 -Force +if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } +$notWindows = ($PSVersionTable.os -and $PSVersionTable.os -notMatch 'Windows' ) +Describe "Test adding trendlines to charts" { BeforeAll { $script:data = ConvertFrom-Csv @" Region,Item,TotalSold @@ -21,7 +24,7 @@ South,avocado,73 Remove-Item $xlfile -ErrorAction SilentlyContinue } - It "Should add a linear trendline" { + It "Should add a linear trendline".PadRight(90) { $cd = New-ExcelChartDefinition -XRange Region -YRange TotalSold -ChartType ColumnClustered -ChartTrendLine Linear $data | Export-Excel $xlfile -ExcelChartDefinition $cd -AutoNameRange @@ -34,7 +37,7 @@ South,avocado,73 Close-ExcelPackage $excel } - It "Should add a MovingAvgerage trendline" { + It "Should add a MovingAvgerage trendline".PadRight(90) { $cd = New-ExcelChartDefinition -XRange Region -YRange TotalSold -ChartType ColumnClustered -ChartTrendLine MovingAvgerage $data | Export-Excel $xlfile -ExcelChartDefinition $cd -AutoNameRange diff --git a/__tests__/Compare-WorkSheet.tests.ps1 b/__tests__/Compare-WorkSheet.tests.ps1 index d9f1311..e3c300e 100644 --- a/__tests__/Compare-WorkSheet.tests.ps1 +++ b/__tests__/Compare-WorkSheet.tests.ps1 @@ -1,4 +1,6 @@ #Requires -Modules Pester +if ($PSVersionTable.os -and $PSVersionTable.os -notMatch 'Windows' ) {return} #Currently this test outputs windows services so only run on Windows. +if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() } Import-Module $PSScriptRoot\..\ImportExcel.psd1 -Force if ($PSVersionTable.PSVersion.Major -gt 5) { Write-Warning "Can't test grid view on V6 and later" } else {Add-Type -AssemblyName System.Windows.Forms } @@ -19,7 +21,7 @@ Describe "Compare Worksheet" { $s.RemoveAt(5) $s | Export-Excel -Path $env:temp\server2.xlsx #Assume default worksheet name, (sheet1) and column header for key ("name") - $comp = compare-WorkSheet "$env:temp\Server1.xlsx" "$env:temp\Server2.xlsx" | Sort-Object -Property _row, _file + $comp = compare-WorkSheet "$env:temp\server1.xlsx" "$env:temp\server2.xlsx" | Sort-Object -Property _row, _file } it "Found the right number of differences " { $comp | should not beNullOrEmpty @@ -55,13 +57,13 @@ Describe "Compare Worksheet" { $ModulePath = (Get-Command -Name 'Compare-WorkSheet').Module.Path $PowerShellExec = if ($PSEdition -eq 'Core') {'pwsh.exe'} else {'powershell.exe'} $PowerShellPath = Join-Path -Path $PSHOME -ChildPath $PowerShellExec - . $PowerShellPath -Command ("Import-Module $ModulePath; " + '$null = Compare-WorkSheet "$env:temp\Server1.xlsx" "$env:temp\Server2.xlsx" -BackgroundColor ([System.Drawing.Color]::LightGreen) -GridView; Start-Sleep -sec 5') + . $PowerShellPath -Command ("Import-Module $ModulePath; " + '$null = Compare-WorkSheet "$env:temp\server1.xlsx" "$env:temp\server2.xlsx" -BackgroundColor ([System.Drawing.Color]::LightGreen) -GridView; Start-Sleep -sec 5') } else { - $null = Compare-WorkSheet "$env:temp\Server1.xlsx" "$env:temp\Server2.xlsx" -BackgroundColor ([System.Drawing.Color]::LightGreen) -GridView:$useGrid + $null = Compare-WorkSheet "$env:temp\server1.xlsx" "$env:temp\server2.xlsx" -BackgroundColor ([System.Drawing.Color]::LightGreen) -GridView:$useGrid } - $xl1 = Open-ExcelPackage -Path "$env:temp\Server1.xlsx" - $xl2 = Open-ExcelPackage -Path "$env:temp\Server2.xlsx" + $xl1 = Open-ExcelPackage -Path "$env:temp\server1.xlsx" + $xl2 = Open-ExcelPackage -Path "$env:temp\server2.xlsx" $s1Sheet = $xl1.Workbook.Worksheets[1] $s2Sheet = $xl2.Workbook.Worksheets[1] } @@ -85,9 +87,9 @@ Describe "Compare Worksheet" { Context "Setting the forgound to highlight changed properties" { BeforeAll { - $null = compare-WorkSheet "$env:temp\Server1.xlsx" "$env:temp\Server2.xlsx" -AllDataBackgroundColor([System.Drawing.Color]::white) -BackgroundColor ([System.Drawing.Color]::LightGreen) -FontColor ([System.Drawing.Color]::DarkRed) - $xl1 = Open-ExcelPackage -Path "$env:temp\Server1.xlsx" - $xl2 = Open-ExcelPackage -Path "$env:temp\Server2.xlsx" + $null = compare-WorkSheet "$env:temp\server1.xlsx" "$env:temp\server2.xlsx" -AllDataBackgroundColor([System.Drawing.Color]::white) -BackgroundColor ([System.Drawing.Color]::LightGreen) -FontColor ([System.Drawing.Color]::DarkRed) + $xl1 = Open-ExcelPackage -Path "$env:temp\server1.xlsx" + $xl2 = Open-ExcelPackage -Path "$env:temp\server2.xlsx" $s1Sheet = $xl1.Workbook.Worksheets[1] $s2Sheet = $xl2.Workbook.Worksheets[1] } @@ -130,9 +132,9 @@ Describe "Compare Worksheet" { $s | Select-Object -Property ServiceName, DisplayName, StartType, ServiceType | Export-Excel -Path $env:temp\server2.xlsx -WorkSheetname server2 #Assume default worksheet name, (sheet1) and column header for key ("name") - $comp = compare-WorkSheet "$env:temp\Server1.xlsx" "$env:temp\Server2.xlsx" -WorkSheetName Server1,Server2 -Key ServiceName -Property DisplayName,StartType -AllDataBackgroundColor ([System.Drawing.Color]::AliceBlue) -BackgroundColor ([System.Drawing.Color]::White) -FontColor ([System.Drawing.Color]::Red) | Sort-Object _row,_file - $xl1 = Open-ExcelPackage -Path "$env:temp\Server1.xlsx" - $xl2 = Open-ExcelPackage -Path "$env:temp\Server2.xlsx" + $comp = compare-WorkSheet "$env:temp\server1.xlsx" "$env:temp\server2.xlsx" -WorkSheetName Server1,Server2 -Key ServiceName -Property DisplayName,StartType -AllDataBackgroundColor ([System.Drawing.Color]::AliceBlue) -BackgroundColor ([System.Drawing.Color]::White) -FontColor ([System.Drawing.Color]::Red) | Sort-Object _row,_file + $xl1 = Open-ExcelPackage -Path "$env:temp\server1.xlsx" + $xl2 = Open-ExcelPackage -Path "$env:temp\server2.xlsx" $s1Sheet = $xl1.Workbook.Worksheets["server1"] $s2Sheet = $xl2.Workbook.Worksheets["server2"] } @@ -188,7 +190,7 @@ Describe "Compare Worksheet" { Describe "Merge Worksheet" { Context "Merge with 3 properties" { BeforeAll { - Remove-Item -Path "$env:temp\server*.xlsx" , "$env:temp\Combined*.xlsx" -ErrorAction SilentlyContinue + Remove-Item -Path "$env:temp\server*.xlsx" , "$env:temp\combined*.xlsx" -ErrorAction SilentlyContinue [System.Collections.ArrayList]$s = get-service | Select-Object -first 25 -Property * $s | Export-Excel -Path $env:temp\server1.xlsx @@ -205,7 +207,7 @@ Describe "Merge Worksheet" { $s | Export-Excel -Path $env:temp\server2.xlsx #Assume default worksheet name, (sheet1) and column header for key ("name") - Merge-Worksheet -Referencefile "$env:temp\server1.xlsx" -Differencefile "$env:temp\Server2.xlsx" -OutputFile "$env:temp\combined1.xlsx" -Property name,displayname,startType -Key name + Merge-Worksheet -Referencefile "$env:temp\server1.xlsx" -Differencefile "$env:temp\server2.xlsx" -OutputFile "$env:temp\combined1.xlsx" -Property name,displayname,startType -Key name $excel = Open-ExcelPackage -Path "$env:temp\combined1.xlsx" $ws = $excel.Workbook.Worksheets["sheet1"] } @@ -247,14 +249,14 @@ Describe "Merge Worksheet" { } Context "Wider data set" { it "Coped with columns beyond Z in the Output sheet " { - { Merge-Worksheet -Referencefile "$env:temp\server1.xlsx" -Differencefile "$env:temp\Server2.xlsx" -OutputFile "$env:temp\combined2.xlsx" } | Should not throw + { Merge-Worksheet -Referencefile "$env:temp\server1.xlsx" -Differencefile "$env:temp\server2.xlsx" -OutputFile "$env:temp\combined2.xlsx" } | Should not throw } } } Describe "Merge Multiple sheets" { Context "Merge 3 sheets with 3 properties" { BeforeAll { - Remove-Item -Path "$env:temp\server*.xlsx" , "$env:temp\Combined*.xlsx" -ErrorAction SilentlyContinue + Remove-Item -Path "$env:temp\server*.xlsx" , "$env:temp\combined*.xlsx" -ErrorAction SilentlyContinue [System.Collections.ArrayList]$s = get-service | Select-Object -first 25 -Property Name,DisplayName,StartType $s | Export-Excel -Path $env:temp\server1.xlsx @@ -281,7 +283,7 @@ Describe "Merge Multiple sheets" { $s | Export-Excel -Path $env:temp\server3.xlsx - Merge-MultipleSheets -Path "$env:temp\server1.xlsx", "$env:temp\Server2.xlsx","$env:temp\Server3.xlsx" -OutputFile "$env:temp\combined3.xlsx" -Property name,displayname,startType -Key name + Merge-MultipleSheets -Path "$env:temp\server1.xlsx", "$env:temp\server2.xlsx","$env:temp\server3.xlsx" -OutputFile "$env:temp\combined3.xlsx" -Property name,displayname,startType -Key name $excel = Open-ExcelPackage -Path "$env:temp\combined3.xlsx" $ws = $excel.Workbook.Worksheets["sheet1"] @@ -295,10 +297,10 @@ Describe "Merge Multiple sheets" { $ws.Cells[ 1,6 ].Value | Should be "Server2 StartType" $ws.Column(7).hidden | Should be $true $ws.Cells[ 1,8].Value | Should be "Server2 Row" - $ws.Cells[ 1,9 ].Value | Should be "Server3 DisplayName" - $ws.Cells[ 1,10].Value | Should be "Server3 StartType" + $ws.Cells[ 1,9 ].Value | Should be "server3 DisplayName" + $ws.Cells[ 1,10].Value | Should be "server3 StartType" $ws.Column(11).hidden | Should be $true - $ws.Cells[ 1,12].Value | Should be "Server3 Row" + $ws.Cells[ 1,12].Value | Should be "server3 Row" } it "Joined the three sheets correctly " { $ws.Cells[ 2,3 ].Value | Should be $ws.Cells[ 2,5 ].Value diff --git a/__tests__/ConvertFromExcelToSQLInsert.tests.ps1 b/__tests__/ConvertFromExcelToSQLInsert.tests.ps1 index 0b53e46..bda8890 100644 --- a/__tests__/ConvertFromExcelToSQLInsert.tests.ps1 +++ b/__tests__/ConvertFromExcelToSQLInsert.tests.ps1 @@ -1,5 +1,5 @@ Import-Module $PSScriptRoot\..\ImportExcel.psd1 -Force - +if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } $xlFile = "$env:TEMP\testSQL.xlsx" Describe "ConvertFrom-ExcelToSQLInsert" { @@ -16,7 +16,7 @@ Describe "ConvertFrom-ExcelToSQLInsert" { Remove-Item $xlFile -Recurse -Force -ErrorAction Ignore } - It "Should be empty double single quotes" { + It "Should be empty double single quotes".PadRight(90) { $expected="INSERT INTO Sheet1 ('Name', 'Age') Values('John', '');" $actual = ConvertFrom-ExcelToSQLInsert -Path $xlFile Sheet1 @@ -24,7 +24,7 @@ Describe "ConvertFrom-ExcelToSQLInsert" { $actual | should be $expected } - It "Should have NULL" { + It "Should have NULL".PadRight(90) { $expected="INSERT INTO Sheet1 ('Name', 'Age') Values('John', NULL);" $actual = ConvertFrom-ExcelToSQLInsert -Path $xlFile Sheet1 -ConvertEmptyStringsToNull diff --git a/__tests__/Copy-ExcelWorksheet.Tests.ps1 b/__tests__/Copy-ExcelWorksheet.Tests.ps1 index 9cb2635..04c9809 100644 --- a/__tests__/Copy-ExcelWorksheet.Tests.ps1 +++ b/__tests__/Copy-ExcelWorksheet.Tests.ps1 @@ -1,3 +1,6 @@ +if ($PSVersionTable.os -and $PSVersionTable.os -notMatch 'Windows' ) {return} #Currently this test outputs windows services so only run on Windows. +if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } + $path1 = "$env:TEMP\Test1.xlsx" $path2 = "$env:TEMP\Test2.xlsx" Remove-item -Path $path1, $path2 -ErrorAction SilentlyContinue @@ -91,8 +94,8 @@ Describe "Copy-Worksheet" { $xlfile = "$env:TEMP\reports.xlsx" $xlfileArchive = "$env:TEMP\reportsArchive.xlsx" - rm $xlfile -ErrorAction SilentlyContinue - rm $xlfileArchive -ErrorAction SilentlyContinue + Remove-Item $xlfile -ErrorAction SilentlyContinue + Remove-Item $xlfileArchive -ErrorAction SilentlyContinue $sheets = echo 1.1.2019 1.2.2019 1.3.2019 1.4.2019 1.5.2019 @@ -119,8 +122,8 @@ Describe "Copy-Worksheet" { $xlfile = "$env:TEMP\reports.xlsx" $xlfileArchive = "$env:TEMP\reportsArchive.xlsx" - rm $xlfile -ErrorAction SilentlyContinue - rm $xlfileArchive -ErrorAction SilentlyContinue + Remove-Item $xlfile -ErrorAction SilentlyContinue + Remove-Item $xlfileArchive -ErrorAction SilentlyContinue $sheets = echo 1.1.2019 1.2.2019 1.3.2019 1.4.2019 1.5.2019 diff --git a/__tests__/Export-Excel.Tests.ps1 b/__tests__/Export-Excel.Tests.ps1 index 1fb9543..964efc4 100644 --- a/__tests__/Export-Excel.Tests.ps1 +++ b/__tests__/Export-Excel.Tests.ps1 @@ -1,12 +1,14 @@ #Requires -Modules Pester -#Import-Module $PSScriptRoot\..\ImportExcel.psd1 -Force +Import-Module $PSScriptRoot\..\ImportExcel.psd1 -Force +if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } +$notWindows = ($PSVersionTable.os -and $PSVersionTable.os -notMatch 'Windows' ) if (Get-process -Name Excel,xlim -ErrorAction SilentlyContinue) { Write-Warning -Message "You need to close Excel before running the tests." ; return} Describe ExportExcel { Context "#Example 1 # Creates and opens a file with the right number of rows and columns" { - $path = "$env:TEMP\Test.xlsx" + $path = Join-Path $Env:TEMP "test.xlsx" Remove-item -Path $path -ErrorAction SilentlyContinue #Test with a maximum of 100 processes for speed; export all properties, then export smaller subsets. $processes = Get-Process | where {$_.StartTime} | Select-Object -first 100 -Property * -excludeProperty Parent @@ -68,7 +70,7 @@ Describe ExportExcel { } Context " # NoAliasOrScriptPropeties -ExcludeProperty and -DisplayPropertySet work" { - $path = "$env:TEMP\Test.xlsx" + $path = Join-Path $Env:TEMP "test.xlsx" Remove-item -Path $path -ErrorAction SilentlyContinue $processes = Get-Process | Select-Object -First 100 $propertyNames = $Processes[0].psobject.properties.where( {$_.MemberType -eq 'Property'}).name @@ -117,7 +119,7 @@ Describe ExportExcel { Context "#Example 2 # Exports a list of numbers and applies number format " { - $path = "$env:TEMP\Test.xlsx" + $path = Join-Path $Env:TEMP "test.xlsx" Remove-item -Path $path -ErrorAction SilentlyContinue #testing -ReturnRange switch and applying number format to Formulas as well as values. $returnedRange = @($null, -1, 0, 34, 777, "", -0.5, 119, -0.1, 234, 788,"=A9+A10") | Export-Excel -NumberFormat '[Blue]$#,##0.00;[Red]-$#,##0.00' -Path $path -ReturnRange @@ -156,7 +158,7 @@ Describe ExportExcel { Context " # Number format parameter" { BeforeAll { - $path = "$env:temp\test.xlsx" + $path = Join-Path $Env:TEMP "test.xlsx" Remove-Item -Path $path -ErrorAction SilentlyContinue 1..10 | Export-Excel -Path $path -Numberformat 'Number' 1..10 | Export-Excel -Path $path -Numberformat 'Percentage' -Append @@ -179,7 +181,7 @@ Describe ExportExcel { if ((Get-Culture).NumberFormat.CurrencySymbol -eq "£") {$OtherCurrencySymbol = "$"} else {$OtherCurrencySymbol = "£"} - $path = "$env:TEMP\Test.xlsx" + $path = Join-Path $Env:TEMP "test.xlsx" $warnVar = $null #Test correct export of different data types and number formats; test hyperlinks, test -NoNumberConversion test object is converted to a string with no warnings, test calcuation of formula Remove-item -Path $path -ErrorAction SilentlyContinue @@ -296,7 +298,7 @@ Describe ExportExcel { Context "# # Setting cells for different data types with -noHeader" { - $path = "$env:TEMP\Test.xlsx" + $path = Join-Path $Env:TEMP "test.xlsx" Remove-item -Path $path -ErrorAction SilentlyContinue #Test -NoHeader & -NoNumberConversion [PSCustOmobject][Ordered]@{ @@ -357,7 +359,7 @@ Describe ExportExcel { #Test New-ConditionalText builds correctly $ct = New-ConditionalText -ConditionalType GreaterThan 525 -ConditionalTextColor ([System.Drawing.Color]::DarkRed) -BackgroundColor ([System.Drawing.Color]::LightPink) - $path = "$env:TEMP\Test.xlsx" + $path = Join-Path $Env:TEMP "test.xlsx" Remove-item -Path $path -ErrorAction SilentlyContinue #Test -ConditionalText with a single conditional spec. Write-Output 489 668 299 777 860 151 119 497 234 788 | Export-Excel -Path $path -ConditionalText $ct @@ -385,8 +387,9 @@ Describe ExportExcel { } Context "#Example 6 # Adding multiple conditional formats using short form syntax. " { + if ($notwindows) {Write-warning "Test only runs on Windows" ; return} #Test adding mutliple conditional blocks and using the minimal syntax for new-ConditionalText - $path = "$env:TEMP\Test.xlsx" + $path = Join-Path $Env:TEMP "test.xlsx" Remove-item -Path $path -ErrorAction SilentlyContinue #Testing -Passthrough @@ -448,9 +451,11 @@ Describe ExportExcel { } Context "#Examples 8 & 9 # Adding Pivot tables and charts from parameters" { - $path = "$env:TEMP\Test.xlsx" + $path = Join-Path $Env:TEMP "test.xlsx" #Test -passthru and -worksheetName creating a new, named, sheet in an existing file. - $Excel = Get-Process | Select-Object -first 20 -Property Name, cpu, pm, handles, company | Export-Excel $path -WorkSheetname Processes -PassThru + $Script:Procs= Get-Process | Select-Object -first 20 -Property Name, cpu, pm, handles, company + if ($Procs.count -lt 20) {Write-warning "Not enough proceses were returned by get-Process to run the test." ; return} + $Excel = $Script:Procs| Export-Excel $path -WorkSheetname Processes -PassThru #Testing -Excel Pacakage and adding a Pivot-table as a second step. Want to save and re-open it ... Export-Excel -ExcelPackage $Excel -WorkSheetname Processes -IncludePivotTable -PivotRows Company -PivotData PM -NoTotalsInPivot -PivotDataToColumn -Activate @@ -507,7 +512,7 @@ Describe ExportExcel { } Context " # Add-Worksheet inserted sheets, moved them correctly, and copied a sheet" { - $path = "$env:TEMP\Test.xlsx" + $path = Join-Path $Env:TEMP "test.xlsx" #Test the -CopySource and -Movexxxx parameters for Add-WorkSheet $Excel = Open-ExcelPackage $path #At this point Sheets Should be in the order Sheet1, Processes, ProcessesPivotTable @@ -529,7 +534,7 @@ Describe ExportExcel { $excel.Workbook.Worksheets[5].Name | Should be "Processes" $excel.Workbook.Worksheets[6].Name | Should be "NearDone" $excel.Workbook.Worksheets[7].Name | Should be "Sheet1" - } + } -skip:($Procs.count -lt 20) it "Cloned 'Sheet1' to 'NewSheet' " { $newWs = $excel.Workbook.Worksheets["NewSheet"] @@ -542,13 +547,15 @@ Describe ExportExcel { } Context " # Create and append with Start row and Start Column, inc ranges and Pivot table. " { - $path = "$env:TEMP\Test.xlsx" + $path = Join-Path $Env:TEMP "test.xlsx" remove-item -Path $path -ErrorAction SilentlyContinue #Catch warning $warnVar = $null #Test -Append with no existing sheet. Test adding a named pivot table from command line parameters and extending ranges when they're not specified explictly - Get-Process | Select-Object -first 10 -Property Name, cpu, pm, handles, company | Export-Excel -StartRow 3 -StartColumn 3 -BoldTopRow -IncludePivotTable -PivotRows Company -PivotData PM -PivotTableName 'PTOffset' -Path $path -WorkSheetname withOffset -Append -PivotFilter Name -NoTotalsInPivot -RangeName procs -AutoFilter -AutoNameRange - Get-Process | Select-Object -last 10 -Property Name, cpu, pm, handles, company | Export-Excel -StartRow 3 -StartColumn 3 -BoldTopRow -IncludePivotTable -PivotRows Company -PivotData PM -PivotTableName 'PTOffset' -Path $path -WorkSheetname withOffset -Append -WarningAction SilentlyContinue -WarningVariable warnvar + $Script:Procs= Get-Process + if ($Procs.count -lt 20) {Write-warning "Not enough proceses were returned by get-Process to run the test." ; return} + $Script:Procs| Select-Object -First 10 -Property Name, cpu, pm, handles, company | Export-Excel -StartRow 3 -StartColumn 3 -BoldTopRow -IncludePivotTable -PivotRows Company -PivotData PM -PivotTableName 'PTOffset' -Path $path -WorkSheetname withOffset -Append -PivotFilter Name -NoTotalsInPivot -RangeName procs -AutoFilter -AutoNameRange + $Script:Procs| Select-Object -Last 10 -Property Name, cpu, pm, handles, company | Export-Excel -StartRow 3 -StartColumn 3 -BoldTopRow -IncludePivotTable -PivotRows Company -PivotData PM -PivotTableName 'PTOffset' -Path $path -WorkSheetname withOffset -Append -WarningAction SilentlyContinue -WarningVariable warnvar $Excel = Open-ExcelPackage $path $dataWs = $Excel.Workbook.Worksheets["withOffset"] $pt = $Excel.Workbook.Worksheets["PTOffset"].PivotTables[0] @@ -592,11 +599,14 @@ Describe ExportExcel { } Context " # Create and append explicit and auto table and range extension" { - $path = "$env:TEMP\Test.xlsx" + $path = Join-Path $Env:TEMP "test.xlsx" #Test -Append automatically extends a table, even when it is not specified in the append command; - Get-Process | Select-Object -first 10 -Property Name, cpu, pm, handles, company | Export-Excel -Path $path -TableName ProcTab -AutoNameRange -WorkSheetname NoOffset -ClearSheet + $Script:Procs= Get-process + if ($Procs.count -lt 20) {Write-warning "Not enough proceses were returned by get-Process to run the test." ; return} + + $Script:Procs| Select-Object -first 10 -Property Name, cpu, pm, handles, company | Export-Excel -Path $path -TableName ProcTab -AutoNameRange -WorkSheetname NoOffset -ClearSheet #Test number format applying to new data - Get-Process | Select-Object -last 10 -Property Name, cpu, pm, handles, company | Export-Excel -Path $path -AutoNameRange -WorkSheetname NoOffset -Append -Numberformat 'Number' + $Script:Procs| Select-Object -last 10 -Property Name, cpu, pm, handles, company | Export-Excel -Path $path -AutoNameRange -WorkSheetname NoOffset -Append -Numberformat 'Number' $Excel = Open-ExcelPackage $path $dataWs = $Excel.Workbook.Worksheets["NoOffset"] @@ -625,7 +635,8 @@ Describe ExportExcel { } Context "#Example 11 # Create and append with title, inc ranges and Pivot table" { - $path = "$env:TEMP\Test.xlsx" + if ($Procs.count -lt 20) {Write-warning "Not enough proceses were returned by get-Process to run the test." ; return} + $path = Join-Path $Env:TEMP "test.xlsx" #Test New-PivotTableDefinition builds definition using -Pivotfilter and -PivotTotals options. $ptDef = [ordered]@{} $ptDef += New-PivotTableDefinition -PivotTableName "PT1" -SourceWorkSheet 'Sheet1' -PivotRows "Status" -PivotData @{'Status' = 'Count'} -PivotTotals Columns -PivotFilter "StartType" -IncludePivotChart -ChartType BarClustered3D -ChartTitle "Services by status" -ChartHeight 512 -ChartWidth 768 -ChartRow 10 -ChartColumn 0 -NoLegend -PivotColumns CanPauseAndContinue @@ -707,8 +718,8 @@ Describe ExportExcel { } Context "#Example 13 # Formatting and another way to do a pivot. " { - $path = "$env:TEMP\Test.xlsx" - Remove-Item $path + $path = Join-Path $Env:TEMP "test.xlsx" + Remove-Item $path -ErrorAction SilentlyContinue #Test freezing top row/first column, adding formats and a pivot table - from Add-Pivot table not a specification variable - after the export $excel = Get-Process | Select-Object -Property Name, Company, Handles, CPU, PM, NPM, WS | Export-Excel -Path $path -ClearSheet -WorkSheetname "Processes" -FreezeTopRowFirstColumn -PassThru $sheet = $excel.Workbook.Worksheets["Processes"] @@ -736,8 +747,6 @@ Describe ExportExcel { } it "Applied the formating " { $sheet | Should not beNullOrEmpty - $sheet.Column(1).wdith | Should not be $sheet.DefaultColWidth - $sheet.Column(7).wdith | Should not be $sheet.DefaultColWidth $sheet.Column(1).style.font.bold | Should be $true $sheet.Column(2).style.wraptext | Should be $true $sheet.Column(2).width | Should be 29 @@ -760,6 +769,10 @@ Describe ExportExcel { $sheet.ConditionalFormatting[2].Formula | Should be '104857600' $sheet.ConditionalFormatting[2].Style.Font.Color.Color.Name | Should be 'ffff0000' } + it "Applied autowidth " { + $sheet.Column(1).wdith | Should not be $sheet.DefaultColWidth + $sheet.Column(7).wdith | Should not be $sheet.DefaultColWidth + } -skip:$notwindows it "Created the named ranges " { $sheet.Names.Count | Should be 7 $sheet.Names[0].Start.Column | Should be 1 @@ -787,7 +800,7 @@ Describe ExportExcel { } Context " # Chart from MultiSeries.ps1 in the Examples\charts Directory" { - $path = "$env:TEMP\Test.xlsx" + $path = Join-Path $Env:TEMP "test.xlsx" Remove-Item -Path $path -ErrorAction SilentlyContinue #Test we haven't missed any parameters on New-ChartDefinition which are on add chart or vice versa. @@ -810,7 +823,7 @@ Describe ExportExcel { $data[1].Handles | Should not beNullOrEmpty $data[1].PM | Should not beNullOrEmpty $data[1].VirtualMemorySize | Should not beNullOrEmpty - } + } -skip:($procs.count -lt 20) $c = New-ExcelChartDefinition -Title Stats -ChartType LineMarkersStacked -XRange "Processes[Name]" -YRange "Processes[PM]", "Processes[VirtualMemorySize]" -SeriesHeader 'PM', 'VMSize' it "Created the Excel chart definition " { @@ -845,7 +858,7 @@ Describe ExportExcel { } Context " # variation of plot.ps1 from Examples Directory using Add chart outside ExportExcel" { - $path = "$env:TEMP\Test.xlsx" + $path = Join-Path $Env:TEMP "test.xlsx" #Test inserting a fomual $excel = 0..360 | ForEach-Object {[pscustomobject][ordered]@{x = $_; Sinx = "=Sin(Radians(x)) "}} | Export-Excel -AutoNameRange -Path $path -WorkSheetname SinX -ClearSheet -FreezeFirstColumn -PassThru #Test-Add Excel Chart to existing data. Test add Conditional formatting with a formula @@ -885,8 +898,9 @@ Describe ExportExcel { } Close-ExcelPackage -ExcelPackage $excel -nosave } + Context " # Quick line chart" { - $path = "$env:TEMP\Test.xlsx" + $path = Join-Path $Env:TEMP "test.xlsx" Remove-Item -Path $path -ErrorAction SilentlyContinue #test drawing a chart when data doesn't have a string 0..360 | ForEach-Object {[pscustomobject][ordered]@{x = $_; Sinx = "=Sin(Radians(x)) "}} | Export-Excel -AutoNameRange -Path $path -LineChart @@ -903,11 +917,11 @@ Describe ExportExcel { } - Context " # Quick Pie chart and three icon conditional formating" { - $path = "$Env:TEMP\Pie.xlsx" + $path = Join-Path $Env:TEMP "Pie.xlsx" Remove-Item -Path $path -ErrorAction SilentlyContinue - + $Script:Procs= Get-Process + if ($Procs.count -lt 20) {Write-warning "Not enough proceses were returned by get-Process to run the test." ; return} $range = Get-Process| Group-Object -Property company | Where-Object -Property name | Select-Object -Property Name, @{n="TotalPm";e={($_.group | Measure-Object -sum -Property pm).sum }} | Export-Excel -NoHeader -AutoNameRange -path $path -ReturnRange -PieChart -ShowPercent @@ -943,7 +957,8 @@ Describe ExportExcel { } Context " # Awkward multiple tables" { - $path = "$Env:TEMP\test.xlsx" + if ($notWindows) {Write-warning "Test only runs on Windows" ; return} + $path = Join-Path $Env:TEMP "test.xlsx" #Test creating 3 on overlapping tables on the same page. Create rightmost the left most then middle. remove-item -Path $path -ErrorAction SilentlyContinue $r = Get-ChildItem -path C:\WINDOWS\system32 -File @@ -978,7 +993,7 @@ Describe ExportExcel { } Context " # Parameters and ParameterSets" { - $Path = "$Env:TEMP\test.xlsx" + $Path = join-path $env:TEMP "temp.xlsx" Remove-Item -Path $Path -ErrorAction SilentlyContinue $Processes = Get-Process | Select-Object -first 10 -Property Name, cpu, pm, handles, company @@ -1013,24 +1028,26 @@ Describe ExportExcel { $ExcelPackage.File | Should Be $Path $Worksheet.Tables[0].Name | Should Be 'Table1' } - it "Now will use temp Path, set TableName with generated name and AutoSize".PadRight(87) { + it "Now will use temp Path, set TableName with generated name".PadRight(87) { $ExcelPackage = $Processes | Export-Excel -Now -PassThru - $Worksheet = $ExcelPackage.Workbook.Worksheets[1] - + $Script:Worksheet = $ExcelPackage.Workbook.Worksheets[1] $ExcelPackage.File | Should BeLike ([IO.Path]::GetTempPath() + '*') - $Worksheet.Tables[0].Name | Should Be 'Table1' - $Worksheet.AutoFilterAddress | Should BeNullOrEmpty - $Worksheet.Column(5).Width | Should BeGreaterThan 9.5 - } + $Script:Worksheet.Tables[0].Name | Should Be 'Table1' + $Script:Worksheet.AutoFilterAddress | Should BeNullOrEmpty} + it "Applies AutoSize with these".PadRight(87) { + $Script:Worksheet.Column(5).Width | Should BeGreaterThan 9.5 + } -skip:$notwindows it "Now allows override of Path and TableName".PadRight(87) { $ExcelPackage = $Processes | Export-Excel -Now -PassThru -Path $Path -TableName:$false - $Worksheet = $ExcelPackage.Workbook.Worksheets[1] + $Script:Worksheet = $ExcelPackage.Workbook.Worksheets[1] $ExcelPackage.File | Should Be $Path - $Worksheet.Tables | Should BeNullOrEmpty - $Worksheet.AutoFilterAddress | Should BeNullOrEmpty - $Worksheet.Column(5).Width | Should BeGreaterThan 9.5 + $Script:Worksheet.Tables | Should BeNullOrEmpty + $Script:Worksheet.AutoFilterAddress | Should BeNullOrEmpty } + it "Allows AutoSize with the override".PadRight(87) { + $Script:Worksheet.Column(5).Width | Should BeGreaterThan 9.5 + } -skip:$notwindows <# Mock looks unreliable need to check Mock -CommandName 'Invoke-Item' it "Now will Show".PadRight(87) { @@ -1052,11 +1069,14 @@ Describe ExportExcel { } it "Now allows to set TableName".PadRight(87) { $ExcelPackage = $Processes | Export-Excel -Now -PassThru -TableName 'Data' - $Worksheet = $ExcelPackage.Workbook.Worksheets[1] + $Script:Worksheet = $ExcelPackage.Workbook.Worksheets[1] - $Worksheet.Tables[0].Name | Should Be 'Data' - $Worksheet.AutoFilterAddress | Should BeNullOrEmpty - $Worksheet.Column(5).Width | Should BeGreaterThan 9.5 + $Script:Worksheet.Tables[0].Name | Should Be 'Data' + $Script:Worksheet.AutoFilterAddress | Should BeNullOrEmpty } + it "Allows to set TableName with AutoSize".PadRight(87) { + $Script:Worksheet.Column(5).Width | Should BeGreaterThan 9.5 + } -skip:$notwindows + } } diff --git a/__tests__/ExtraLongCmd.tests.ps1 b/__tests__/ExtraLongCmd.tests.ps1 index 8a7d040..ecb8c17 100644 --- a/__tests__/ExtraLongCmd.tests.ps1 +++ b/__tests__/ExtraLongCmd.tests.ps1 @@ -1,6 +1,7 @@ +if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } -$path = "$Env:TEMP\test.xlsx" +$path = Join-Path $Env:TEMP "test.xlsx" remove-item -path $path -ErrorAction SilentlyContinue ConvertFrom-Csv @" Product, City, Gross, Net diff --git a/__tests__/First10Races.tests.ps1 b/__tests__/First10Races.tests.ps1 index ca2d122..3eaa924 100644 --- a/__tests__/First10Races.tests.ps1 +++ b/__tests__/First10Races.tests.ps1 @@ -1,9 +1,11 @@ -$scriptPath = Split-Path -Path $MyInvocation.MyCommand.path -Parent +if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } + +$scriptPath = Split-Path -Path $MyInvocation.MyCommand.path -Parent $dataPath = Join-Path -Path $scriptPath -ChildPath "First10Races.csv" Describe "Creating small named ranges with hyperlinks" { BeforeAll { - $path = "$env:TEMP\Results.xlsx" + $path = Join-Path $Env:TEMP "results.xlsx" Remove-Item -Path $path -ErrorAction SilentlyContinue #Read race results, and group by race name : export 1 row to get headers, leaving enough rows aboce to put in a link for each race $results = Import-Csv -Path $dataPath | diff --git a/__tests__/FunctionAlias.tests.ps1 b/__tests__/FunctionAlias.tests.ps1 index 9650d3f..02bd6e4 100644 --- a/__tests__/FunctionAlias.tests.ps1 +++ b/__tests__/FunctionAlias.tests.ps1 @@ -5,15 +5,15 @@ Import-Module $PSScriptRoot\..\ImportExcel.psd1 -Force Describe "Check if Function aliases exist" { - It "Set-Column should exist" { + It "Set-Column should exist".PadRight(90) { ${Alias:Set-Column} | Should Not BeNullOrEmpty } - It "Set-Row should exist" { + It "Set-Row should exist".PadRight(90) { ${Alias:Set-Row} | Should Not BeNullOrEmpty } - It "Set-Format should exist" { + It "Set-Format should exist".PadRight(90) { ${Alias:Set-Format} | Should Not BeNullOrEmpty } @@ -21,7 +21,7 @@ Describe "Check if Function aliases exist" { Get-Command Merge-MulipleSheets | Should Not Be $null } #> - It "New-ExcelChart should exist" { + It "New-ExcelChart should exist".PadRight(90) { ${Alias:New-ExcelChart} | Should Not BeNullOrEmpty } diff --git a/__tests__/ImportExcelFileList.tests.ps1 b/__tests__/ImportExcelFileList.tests.ps1 index 89c50ba..3428b00 100644 --- a/__tests__/ImportExcelFileList.tests.ps1 +++ b/__tests__/ImportExcelFileList.tests.ps1 @@ -1,5 +1,5 @@ Describe "ImportExcel File List" { - It "All files should exist" { + It "All files should exist".PadRight(90) { $fileList = Get-Content "$PSScriptRoot\..\filelist.txt" foreach ($file in $fileList) { diff --git a/__tests__/ImportExcelTests/Simple.tests.ps1 b/__tests__/ImportExcelTests/Simple.tests.ps1 index a89a798..7248b07 100644 --- a/__tests__/ImportExcelTests/Simple.tests.ps1 +++ b/__tests__/ImportExcelTests/Simple.tests.ps1 @@ -8,20 +8,20 @@ Describe "Tests" { } } - It "Should have two items" { + It "Should have two items".PadRight(90) { $data.count | Should be 2 } - It "Should have items a and b" { + It "Should have items a and b".PadRight(90) { $data[0].p1 | Should be "a" $data[1].p1 | Should be "b" } - It "Should read fast < 2100 milliseconds" { + It "Should read fast < 2100 milliseconds".PadRight(90) { $timer.TotalMilliseconds | should BeLessThan 2100 } - It "Should read larger xlsx, 4k rows 1 col < 3000 milliseconds" { + It "Should read larger xlsx, 4k rows 1 col < 3000 milliseconds".PadRight(90) { $timer = Measure-Command { $null = Import-Excel $PSScriptRoot\LargerFile.xlsx } @@ -29,7 +29,7 @@ Describe "Tests" { $timer.TotalMilliseconds | should BeLessThan 3000 } - It "Should be able to open, read and close as seperate actions" { + It "Should be able to open, read and close as seperate actions".PadRight(90) { $timer = Measure-Command { $excel = Open-ExcelPackage $PSScriptRoot\Simple.xlsx $data = Import-Excel -ExcelPackage $excel diff --git a/__tests__/InputItemParameter.tests.ps1 b/__tests__/InputItemParameter.tests.ps1 index 34983e6..4c02609 100644 --- a/__tests__/InputItemParameter.tests.ps1 +++ b/__tests__/InputItemParameter.tests.ps1 @@ -1,6 +1,8 @@ +if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } + Describe "Exporting with -Inputobject" { BeforeAll { - $path = "$env:TEMP\Results.xlsx" + $path = Join-Path $Env:TEMP "results.xlsx" Remove-Item -Path $path -ErrorAction SilentlyContinue #Read race results, and group by race name : export 1 row to get headers, leaving enough rows aboce to put in a link for each race $results = ((Get-Process) + (Get-Process -id $PID)) | Select-Object -last 10 -Property Name, cpu, pm, handles, StartTime diff --git a/__tests__/Join-Worksheet.tests.ps1 b/__tests__/Join-Worksheet.tests.ps1 index f0c24c0..c6b87b3 100644 --- a/__tests__/Join-Worksheet.tests.ps1 +++ b/__tests__/Join-Worksheet.tests.ps1 @@ -1,4 +1,7 @@ -$data1 = ConvertFrom-Csv -InputObject @" +if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } +$notWindows = ($PSVersionTable.os -and $PSVersionTable.os -notMatch 'Windows' ) + +$data1 = ConvertFrom-Csv -InputObject @" ID,Product,Quantity,Price,Total 12001,Nails,37,3.99,147.63 12002,Hammer,5,12.10,60.5 @@ -24,7 +27,7 @@ ID,Product,Quantity,Price,Total Describe "Join Worksheet part 1" { BeforeAll { - $path = "$Env:TEMP\test.xlsx" + $path = Join-Path $Env:TEMP "test.xlsx" Remove-Item -Path $path -ErrorAction SilentlyContinue $data1 | Export-Excel -Path $path -WorkSheetname Oxford $data2 | Export-Excel -Path $path -WorkSheetname Abingdon @@ -89,10 +92,11 @@ Describe "Join Worksheet part 1" { } } } - $path = "$env:TEMP\Test.xlsx" + $path = Join-Path $Env:TEMP "Test.xlsx" Remove-item -Path $path -ErrorAction SilentlyContinue #switched to CIM objects so test runs on V6 Describe "Join Worksheet part 2" { + if ($notWindows) {Write-warning -message "Test only runs on Windows" ; return} Get-CimInstance -ClassName win32_logicaldisk | Select-Object -Property DeviceId,VolumeName, Size,Freespace | Export-Excel -Path $path -WorkSheetname Volumes -NumberFormat "0,000" diff --git a/__tests__/PasswordProtection.tests.ps1 b/__tests__/PasswordProtection.tests.ps1 index 93d0e11..ec4e6a6 100644 --- a/__tests__/PasswordProtection.tests.ps1 +++ b/__tests__/PasswordProtection.tests.ps1 @@ -1,9 +1,10 @@ -if ($PSVersionTable.PSVersion.Major -GT 5) { - Write-Warning "Can't test passwords on V6 and later" - return -} + Describe "Password Support" { + if ($PSVersionTable.PSVersion.Major -GT 5) { + Write-Warning "Can't test passwords on V6 and later" + return + } Context "Password protected sheet" { BeforeAll { $password = "YouMustRememberThis" diff --git a/__tests__/Path.tests.ps1 b/__tests__/Path.tests.ps1 index cfc24bf..6b449bd 100644 --- a/__tests__/Path.tests.ps1 +++ b/__tests__/Path.tests.ps1 @@ -1,38 +1,38 @@ Describe "Test reading relative paths" { BeforeAll { $script:xlfileName = "TestR.xlsx" - @{data = 1 } | Export-Excel "$pwd\TestR.xlsx" + @{data = 1 } | Export-Excel (Join-Path $PWD "TestR.xlsx") } AfterAll { - Remove-Item "$pwd\$($script:xlfileName)" + Remove-Item (Join-Path $PWD "$($script:xlfileName)") } - It "Should read local file" { + It "Should read local file".PadRight(90) { $actual = Import-Excel -Path ".\$($script:xlfileName)" $actual | Should Not Be $null $actual.Count | Should Be 1 } - It "Should read with pwd" { - $actual = Import-Excel -Path "$pwd\$($script:xlfileName)" + It "Should read with pwd".PadRight(90){ + $actual = Import-Excel -Path (Join-Path $PWD "$($script:xlfileName)") $actual | Should Not Be $null } - It "Should read with just a file name and resolve to cwd" { + It "Should read with just a file name and resolve to cwd".PadRight(90){ $actual = Import-Excel -Path "$($script:xlfileName)" $actual | Should Not Be $null } - It "Should fail for not found" { + It "Should fail for not found".PadRight(90){ { Import-Excel -Path "ExcelFileDoesNotExist.xlsx" } | Should Throw "'ExcelFileDoesNotExist.xlsx' file not found" } - It "Should fail for xls extension" { + It "Should fail for xls extension".PadRight(90){ { Import-Excel -Path "ExcelFileDoesNotExist.xls" } | Should Throw "Import-Excel does not support reading this extension type .xls" } - It "Should fail for xlsxs extension" { + It "Should fail for xlsxs extension".PadRight(90){ { Import-Excel -Path "ExcelFileDoesNotExist.xlsxs" } | Should Throw "Import-Excel does not support reading this extension type .xlsxs" } } \ No newline at end of file diff --git a/__tests__/ProtectWorksheet.tests.ps1 b/__tests__/ProtectWorksheet.tests.ps1 index ecdff4f..14c8f65 100644 --- a/__tests__/ProtectWorksheet.tests.ps1 +++ b/__tests__/ProtectWorksheet.tests.ps1 @@ -1,4 +1,6 @@ -$path = "$Env:TEMP\test.xlsx" +if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } + +$path = Join-Path $Env:TEMP "test.xlsx" Remove-Item -path $path -ErrorAction SilentlyContinue $excel = ConvertFrom-Csv @" Product, City, Gross, Net diff --git a/__tests__/RangePassing.ps1 b/__tests__/RangePassing.ps1 index 1858215..c26f9d0 100644 --- a/__tests__/RangePassing.ps1 +++ b/__tests__/RangePassing.ps1 @@ -1,5 +1,10 @@ -$path = "$env:temp\test.xlsx" + +if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } +$notWindows = ($PSVersionTable.os -and $PSVersionTable.os -notMatch 'Windows' ) + +$path = Join-Path $Env:TEMP "test.xlsx" describe "Consistent passing of ranges." { + if ($notWindows) {Write-warning -message "Test uses get-service so only works on Windows" ; return} Context "Conditional Formatting" { Remove-Item -path $path -ErrorAction SilentlyContinue $excel = Get-Service | Export-Excel -Path $path -WorksheetName Services -PassThru -AutoSize -DisplayPropertySet -AutoNameRange -Title "Services on $Env:COMPUTERNAME" diff --git a/__tests__/Remove-WorkSheet.tests.ps1 b/__tests__/Remove-WorkSheet.tests.ps1 index bf39a13..9458619 100644 --- a/__tests__/Remove-WorkSheet.tests.ps1 +++ b/__tests__/Remove-WorkSheet.tests.ps1 @@ -1,5 +1,6 @@ #Requires -Modules Pester Import-Module $PSScriptRoot\..\ImportExcel.psd1 -Force +if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } Describe "Remove Worksheet" { Context "Remove a worksheet output" { @@ -10,7 +11,7 @@ Name,Age Jane,10 John,20 "@ - $xlFile1 = "$env:TEMP\RemoveWorsheet1.xlsx" + $xlFile1 = Join-Path $Env:TEMP "removeWorsheet1.xlsx" Remove-Item $xlFile1 -ErrorAction SilentlyContinue $data | Export-Excel -Path $xlFile1 -WorksheetName Target1 @@ -18,7 +19,7 @@ John,20 $data | Export-Excel -Path $xlFile1 -WorksheetName Target3 $data | Export-Excel -Path $xlFile1 -WorksheetName Sheet1 - $xlFile2 = "$env:TEMP\RemoveWorsheet2.xlsx" + $xlFile2 = Join-Path $Env:TEMP "removeWorsheet2.xlsx" Remove-Item $xlFile2 -ErrorAction SilentlyContinue $data | Export-Excel -Path $xlFile2 -WorksheetName Target1 @@ -27,11 +28,11 @@ John,20 $data | Export-Excel -Path $xlFile2 -WorksheetName Sheet1 } - it "Should throw about the Path" { + it "Should throw about the Path".PadRight(87) { {Remove-WorkSheet} | Should throw 'Remove-WorkSheet requires the and Excel file' } - it "Should delete Target2" { + it "Should delete Target2".PadRight(87) { Remove-WorkSheet -Path $xlFile1 -WorksheetName Target2 $actual = Get-ExcelSheetInfo -Path $xlFile1 @@ -42,7 +43,7 @@ John,20 $actual[2].Name | Should Be "Sheet1" } - it "Should delete Sheet1" { + it "Should delete Sheet1".PadRight(87) { Remove-WorkSheet -Path $xlFile1 $actual = Get-ExcelSheetInfo -Path $xlFile1 @@ -53,7 +54,7 @@ John,20 $actual[2].Name | Should Be "Target3" } - it "Should delete multiple sheets" { + it "Should delete multiple sheets".PadRight(87) { Remove-WorkSheet -Path $xlFile1 -WorksheetName Target1, Sheet1 $actual = Get-ExcelSheetInfo -Path $xlFile1 @@ -63,9 +64,9 @@ John,20 $actual[1].Name | Should Be "Target3" } - it "Should delete sheet from multiple workbooks" { + it "Should delete sheet from multiple workbooks".PadRight(87) { - Get-ChildItem "$env:TEMP\RemoveWorsheet*.xlsx" | Remove-WorkSheet + Get-ChildItem (Join-Path $Env:TEMP "removeWorsheet*.xlsx") | Remove-WorkSheet $actual = Get-ExcelSheetInfo -Path $xlFile1 diff --git a/__tests__/Set-Row_Set-Column-SetFormat.tests.ps1 b/__tests__/Set-Row_Set-Column-SetFormat.tests.ps1 index c0d35ef..b802895 100644 --- a/__tests__/Set-Row_Set-Column-SetFormat.tests.ps1 +++ b/__tests__/Set-Row_Set-Column-SetFormat.tests.ps1 @@ -1,5 +1,6 @@ - -$path = "$Env:TEMP\test.xlsx" +Import-Module $PSScriptRoot\..\ImportExcel.psd1 -Force +if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } +$path = Join-Path $Env:TEMP "test.xlsx" $data = ConvertFrom-Csv -InputObject @" ID,Product,Quantity,Price @@ -299,7 +300,7 @@ Describe "Conditional Formatting" { } } -$path = "$Env:TEMP\test.xlsx" +$path = Join-Path $Env:TEMP "test.xlsx" $data2 = ConvertFrom-Csv -InputObject @" ID,Product,Quantity,Price,Total 12001,Nails,37,3.99,147.63 @@ -320,7 +321,7 @@ ID,Product,Quantity,Price,Total Describe "AutoNameRange data with a single property name" { BeforeEach { - $xlfile = "$Env:TEMP\testNamedRange.xlsx" + $xlfile = Join-Path $Env:TEMP "testNamedRange.xlsx" Remove-Item $xlfile -ErrorAction SilentlyContinue } diff --git a/__tests__/Validation.tests.ps1 b/__tests__/Validation.tests.ps1 index db1ec43..7c30e43 100644 --- a/__tests__/Validation.tests.ps1 +++ b/__tests__/Validation.tests.ps1 @@ -1,3 +1,7 @@ +Import-Module $PSScriptRoot\..\ImportExcel.psd1 -Force +if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } +$notWindows = ($PSVersionTable.os -and $PSVersionTable.os -notMatch 'Windows' ) + $data = ConvertFrom-Csv -InputObject @" ID,Product,Quantity,Price 12001,Nails,37,3.99 @@ -7,7 +11,7 @@ ID,Product,Quantity,Price 12011,Crowbar,7,23.48 "@ -$path = "$Env:TEMP\DataValidation.xlsx" +$path = Join-Path $Env:TEMP "DataValidation.xlsx" Describe "Data validation and protection" { Context "Data Validation rules" {