Я разрабатываю файл Jenkins для создания тестового конвейера.
Я изо всех сил пытался найти решение для следующего:
В файле Jenkins я добавил этап, на котором я хочу публиковать отчет Nunit после завершения тестов, однако для каждого запуска создается папка с меткой даты и времени, поэтому важно всегда выбирать последняя папка из списка. Моя проблема заключается в том, что я использую команду powershell для получения имени последней созданной папки и выполняю эту команду в определенном пути к каталогу следующим образом:
stage('Publish NUnit Test Report'){
dir('C:\\Jenkins\\workspace\\QA-Test-Pipeline\\iGCAutomation.Runner\\Reports') {
powershell 'echo "Set directory"'
powershell 'New-Variable -Name "testFile" -Value (gci|sort LastWriteTime|select -last 1).Name -Scope global'
powershell 'Get-Variable -Name "testFile"'
}
testFile = powershell 'Get-Variable -Name "testFile"'
dir("C:\\Jenkins\\workspace\\QA-Test-Pipeline\\iGCAutomation.Runner\\Reports\\" + testFile + "\\") {
powershell 'Get-Location'
powershell 'copy-item "TestResultNUnit3.xml" -destination "C:\\Jenkins\\workspace\\QA-Test-Pipeline\\iGCAutomation.Runner\\Reports\\NUnitXmlReport" -force'
}
dir('C:\\Jenkins\\workspace\\QA-Test-Pipeline\\iGCAutomation.Runner\\Reports\\NUnitXmlReport'){
nunit testResultsPattern: 'TestResultNUnit3.xml'
}
}
Как вы можете заметить, я пытаюсь создать новую переменную с именем 'testFile', в которой хранится значение имени последней папки, но когда я перехожу к следующей части скрипта, которая требует смены каталога снова, переменная testfile не создается, и при попытке получить ее значение выдается исключение.
Все, что я хотел бы сделать, это получить имя последней созданной папки и передать его этой части скрипта, чтобы перейти на новый путь к каталогу.
dir("C:\\Jenkins\\workspace\\QA-Test-Pipeline\\iGCAutomation.Runner\\Reports\\" + testFile + "\\")
Я пробовал много решений в Интернете, но, похоже, ничего не работает. Powershell в Groovy-песочнице не всегда работает так, как я ожидаю.