Параметризація тестів
Ви можете просто па раметризувати тести на рівні тесту за допомогою простих циклів for
, наприклад:
const people = ['Alice', 'Bob']
describe('my tests', () => {
for (const name of people) {
it(`testing with ${name}`, async () => {
// ...
})
}
})
або шляхом вилучення тестів у динамічні функції, наприклад:
import { browser } from '@wdio/globals'
function testComponent(componentName, options) {
it(`should test my ${componentName}`, async () => {
await browser.url(`/${componentName}`)
await expect($('input')).toHaveValue(options.expectedValue)
})
}
describe('page components', () => {
testComponent('component-a', { expectedValue: 'some expected value' })
testComponent('component-b', { expectedValue: 'some other expected value' })
})
Передача змінних середовища
Ви можете використовувати змінні середовища для налаштування тестів з командного рядка.
Наприклад, розглянемо наступний тестовий фа йл, який потребує ім'я користувача та пароль. Зазвичай добре не зберігати свої секрети у вихідному коді, тому нам потрібен спосіб передачі секретів ззовні.
it(`example test`, async () => {
// ...
await $('#username').setValue(process.env.USERNAME)
await $('#password').setValue(process.env.PASSWORD)
})
Ви можете запус тити цей тест із вашим секретним ім'ям користувача та паролем, встановленими в командному рядку.
- Bash
- Powershell
- Batch
USERNAME=me PASSWORD=secret npx wdio run wdio.conf.js
$env:USERNAME=me
$env:PASSWORD=secret
npx wdio run wdio.conf.js
set USERNAME=me
set PASSWORD=secret
npx wdio run wdio.conf.js
Аналогічно, файл конфігурації також може читати змінні середовища, передані через командний рядок.
export const config = {
// ...
baseURL: process.env.STAGING === '1'
? 'http://staging.example.test/'
: 'http://example.test/',
// ...
}
Тепер ви можете запускати тести проти тестового або виробничого середовища:
- Bash
- Powershell
- Batch
STAGING=1 npx wdio run wdio.conf.js
$env:STAGING=1
npx wdio run wdio.conf.js
set STAGING=1
npx wdio run wdio.conf.js