Моя настройка: Я запускаю несколько динамических тестов на кипарисе, то есть получаю список некоторых имен в переменных окружения.Количество тестов зависит от количества имен в этом списке.
Моя цель: Что я хочу сделать, так это манипулировать этим массивом, который содержит список таким образом, что если онсодержит слово «ALL», переданное через переменную окружения, затем я хочу изменить массив и добавить все имена, которые я получаю с помощью вызова API.Это дает мне возможность получать все имена вместо того, чтобы записывать их одно за другим вручную.
Моя проблема: Хотя beforeEach () запускается до проверки, значение, содержащееся в моем массиве, остается прежнимчто я получил через мои переменные среды.Я предполагаю, что код в description () , но вне it () и beforeeach () выполняется первым ... однако даже после beforeEach () запускает и обновляет мой массив, при запуске тестов они все еще используют более старое значение, полученное из переменной среды.
Я хочу условно обновить мой массив в зависимости от того, что передано в переменную среды "ALL""или некоторые имена.
Мой код:
describe('[' + Cypress.env('TEAM') + ' - ' + Cypress.env('CLUSTER') + '] - ', () => {
let dataPoolsArray: string[] = Cypress.env('DATAPOOLS').split(',') // this is being read directly from env variable
beforeEach(() => {
cy.defaultLogin()
if ( Cypress.env('DATAPOOLS') === 'ALL') { // Depending on my env variable I want to change the value of the array here
dataPoolsArray.length = 0
let i = 0
cy.Integration_DataPool_findAll().then((getDataPoolsResponse) => {
getDataPoolsResponse.body
.forEach((dataPool: any) => {
dataPoolsArray.push(dataPool.name)
cy.log('dataPoolsArray: ' + dataPoolsArray[i])
i ++
})
})
}
})
dataPoolsArray.forEach((poolName) => { // However when I run my test it just takes "ALL" as the only value in the array
it('Data Model for pool: ' + poolName, () => {
cy.log('Checking if datamodel loaded for the pool: ' + poolName)
cy.sendPqlQueryToAnalysisConnectedToPool(poolName)
})
})
})
Помощь будет высоко ценится.