프레임워크
WebdriverIO 러너는 Mocha, Jasmine, Cucumber.js를 기본적으로 지원합니다. 또한 Serenity/JS와 같은 서드파티 오픈소스 프레임워크와도 통합할 수 있습니다.
WebdriverIO를 테스트 프레임워크와 통합하려면 NPM에서 제공하는 어댑터 패키지가 필요합니다. 어댑터 패키지는 WebdriverIO가 설치된 동일한 위치에 설치되어야 합니다. 따라서 WebdriverIO를 전역적으로 설치한 경우 어댑터 패키지도 전역적으로 설치해야 합니다.
WebdriverIO를 테스트 프레임워크와 통합하면 스펙 파일이나 스텝 정의에서 전역 browser
변수를 통해 WebDriver 인스턴스에 접근할 수 있습니다.
WebdriverIO가 Selenium 세션의 인스턴스화와 종료를 담당하므로 사용자가 직접 처리할 필요가 없습니다.
Mocha 사용하기
먼저 NPM에서 어댑터 패키지를 설치하세요:
- npm
- Yarn
- pnpm
- Bun
npm install @wdio/mocha-framework --save-dev
yarn add @wdio/mocha-framework --dev
pnpm add @wdio/mocha-framework --save-dev
bun add @wdio/mocha-framework --dev
기본적으로 WebdriverIO는 바로 시작할 수 있는 내장 어썰션 라이브러리를 제공합니다:
describe('my awesome website', () => {
it('should do some assertions', async () => {
await browser.url('https://webdriver.io')
await expect(browser).toHaveTitle('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js | WebdriverIO')
})
})
WebdriverIO는 Mocha의 BDD
(기본값), TDD
, QUnit
인터페이스를 지원합니다.
TDD 스타일로 스펙을 작성하고 싶다면, 설정 파일의 mochaOpts
에서 ui
속성을 tdd
로 설정하세요. 이제 테스트 파일은 다음과 같이 작성됩니다:
suite('my awesome website', () => {
test('should do some assertions', async () => {
await browser.url('https://webdriver.io')
await expect(browser).toHaveTitle('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js | WebdriverIO')
})
})
다른 Mocha 관련 설정을 정의하려면 설정 파일의 mochaOpts
키를 사용하면 됩니다. 모든 옵션 목록은 Mocha 프로젝트 웹사이트에서 확인할 수 있습니다.
참고: WebdriverIO는 Mocha에서 더 이상 사용되지 않는 done
콜백 사용을 지원하지 않습니다:
it('should test something', (done) => {
done() // "done is not a function" 오류 발생
})
Mocha 옵션
다음 옵션들은 wdio.conf.js
에서 Mocha 환경을 구성하기 위해 적용될 수 있습니다. 참고: 모든 옵션이 지원되는 것은 아닙니다. 예를 들어 parallel
옵션을 적용하면 WDIO 테스트러너가 자체적으로 병렬 테스트를 실행하는 방식을 갖고 있기 때문에 오류가 발생합니다. 다음과 같이 프레임워크 옵션을 인수로 전달할 수 있습니다:
wdio run wdio.conf.ts --mochaOpts.grep "my test" --mochaOpts.bail --no-mochaOpts.checkLeaks
이는 다음과 같은 Mocha 옵션을 전달합니다:
{
grep: ['my-test'],
bail: true
checkLeacks: false
}
다음과 같은 Mocha 옵션들이 지원됩니다:
require
require
옵션은 기본 기능을 추가하거나 확장할 때 유용합니다(WebdriverIO 프레임워크 옵션).
타입: string|string[]
기본값: []