我们的一些测试程序会创建目录,在其中写入一些文件并将其删除。在我们迁移到 Windows10(从 Windows7)后,这些测试最近开始失败
测试使用 Java 编写 - 后来测试用例缩减为小序列 * 创建目录,删除目录。 * 添加了文件创建和写入文件,以便更轻松地获取错误
出现一些错误(powershell 新手)后,使用 powershell 重新创建了错误。
我认为这可能是环境问题或 Windows10(版本 1909)的一些新问题
远程位置是 NetApp 文件管理器位置,用于公开 Windows 的 CIFS。脚本如下。错误未发生在虚拟机的本地磁盘或其他远程位置(即普通的 Windows 共享)上
#preparation
$strRoot = $env:REMOTE_UNC_PATH
New-Item -ItemType "directory" -Path $strRoot -Force -ErrorAction Continue
$sleepMillis = $env:SLEEP_TIME_MILLIS
$ErrorActionPreference = "Stop"
$strTestdir = "$strRoot\testdir"
$strPathFile = "$strTestdir\sample.txt"
#actual test cases
For ($i=0; $i -lt 1000 ; $i++) {
Write-Output "Iteration $i "
Write-Output "Iteration $i Create directory : $strTestdir "
New-Item -ItemType "directory" -Path $strTestdir -ErrorAction Stop
Write-Output "Iteration $i Write a file $strPathFile "
New-Item -ItemType "file" -Path $strPathFile -ErrorAction Stop
Write-Output "Iteration $i remove the file $strPathFile "
Remove-Item -Force $strPathFile -ErrorAction Stop
Write-Output "Iteration $i remove the directory $strTestdir"
Remove-Item -Force -Recurse $strTestdir -ErrorAction Stop
Write-Output "Iteration $i Sleep for $sleepMillis milliseconds"
Start-Sleep -Milliseconds $sleepMillis
}
exit $LastExitCode
错误可能发生在任何一行
- 目录已创建但无法创建文件
- 文件已创建但无法删除等
上次运行的日志
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 23/12/2019 09:14 testdir
Iteration 4 Write a file //ies-net-cls1-data.ies.mentorg.com/iesd_data3_nb/jayandir\testdir\sample.txt
Directory: \\ies-net-cls1-data.ies.mentorg.com\iesd_data3_nb\jayandir\testdir
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 23/12/2019 09:14 0 sample.txt
Iteration 4 remove the file //ies-net-cls1-data.ies.mentorg.com/iesd_data3_nb/jayandir\testdir\sample.txt
Iteration 4 remove the directory //ies-net-cls1-data.ies.mentorg.com/iesd_data3_nb/jayandir\testdir
Iteration 4 Sleep for 3 milliseconds
Iteration 5
Iteration 5 Create directory : //ies-net-cls1-data.ies.mentorg.com/iesd_data3_nb/jayandir\testdir
New-Item : An item with the specified name \\ies-net-cls1-data.ies.mentorg.com\iesd_data3_nb\jayandir\testdir already
exists.
At C:\Users\iesdgrid\AppData\Local\Temp\jenkins8492477017526245143.ps1:19 char:6
+ New-Item -ItemType "directory" -Path $strTestdir -ErrorActio ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceExists: (\\ies-net-cls1-...ayandir\testdir:String) [New-Item], IOException
+ FullyQualifiedErrorId : DirectoryExist,Microsoft.PowerShell.Commands.NewItemCommand
Build step 'Windows PowerShell' marked build as failure
New run name is '#26 - sleep 3'
Notifying upstream projects of job completion
Finished: FAILURE
机器:具有 2 个 vCPU、8G RAM 的虚拟机,操作系统:Windows 10 1909 版本远程位置:NetApp CIFS 位置
搜索后请注意:这看起来与https://stackoverflow.com/questions/52439670/files-move-file-renameto-both-fail-after-many-iterations-windows-10-definit(Files.move / file.renameTo 经过多次迭代后均失败(Windows 10))——但使用 powershell 重现