컴포넌트 테스팅
WebdriverIO의 브라우저 러너를 사용하면 실제 데스크톱이나 모바일 브라우저에서 테스트를 실행하면서 WebdriverIO와 WebDriver 프로토콜을 사용하여 페이지에 렌더링된 내용을 자동화하고 상호작용할 수 있습니다. 이 접근 방식은 JSDOM에서만 테스트를 허용하는 다른 테스트 프레임워크와 비교했을 때 많은 장점이 있습니다.
어떻게 작동하나요?
브라우저 러너는 Vite를 사용하여 테스트 페이지를 렌더링하고 브라우저에서, 테스트를 실행하기 위한 테스트 프레임워크를 초기화합니다. 현재는 Mocha만 지원하지만 Jasmine과 Cucumber는 로드맵에 있습니다. 이를 통해 Vite를 사용하지 않는 프로젝트에서도 모든 종류의 컴포넌트를 테스트할 수 있습니다.
Vite 서버는 WebdriverIO 테스트러너에 의해 시 작되며, 일반 e2e 테스트에 사용했던 모든 리포터와 서비스를 사용할 수 있도록 구성됩니다. 또한 페이지의 모든 요소와 상호작용할 수 있는 WebdriverIO API의 하위 집합에 접근할 수 있는 browser 인스턴스를 초기화합니다. e2e 테스트와 유사하게 글로벌 스코프에 연결된 browser 변수를 통해 또는 injectGlobals 설정 방식에 따라 @wdio/globals에서 가져와서 해당 인스턴스에 접근할 수 있습니다.
WebdriverIO는 다음 프레임워크에 대한 기본 지원을 제공합니다:
- Nuxt: WebdriverIO의 테스트러너는 Nuxt 애플리케이션을 감지하고 자동으로 프로젝트 컴포저블을 설정하고 Nuxt 백엔드를 모킹하는 데 도움을 줍니다. 자세한 내용은 Nuxt 문서를 참조하세요.
- TailwindCSS: WebdriverIO의 테스트러너는 TailwindCSS를 사용하고 있는지 감지하고 테스트 페이지에 환경을 적절히 로드합니다.
설정
브라우저에서 단위 또는 컴포넌트 테스트를 위해 WebdriverIO를 설정하려면 다음과 같이 새 WebdriverIO 프로젝트를 초기화하세요:
npm init wdio@latest ./
# 또는
yarn create wdio ./
구성 마법사가 시작되면, 단위 및 컴포넌트 테스트를 실행하기 위해 browser를 선택하고 원하는 경우 사전 설정 중 하나를 선택하거나, 기본 단위 테스트만 실행하려면 _"Other"_를 선택하세요. 프로젝트에서 이미 Vite를 사용하고 있다면 사용자 정의 Vite 구성을 설정할 수도 있습니다. 자세한 정보는 모든 러너 옵션을 확인하세요.
참고: WebdriverIO는 기본적으로 CI 환경에서 헤드리스 모드로 브라우저 테스트를 실행합니다(예: CI 환경 변수가 '1' 또는 'true'로 설정된 경우). 러너의 headless 옵션을 사용하여 이 동작을 수동으로 구성할 수 있습니다.
이 과정이 끝나면 다양한 WebdriverIO 구성이 포함된 wdio.conf.js 파일을 찾을 수 있으며, 여기에는 runner 속성이 포함됩니다. 예:
loading...
서로 다른 capabilities를 정의하여 다양한 브라우저에서 테스트를 실행할 수 있으며, 원하는 경우 병렬로 실행할 수 있습니다.
모든 것이 어떻게 작동하는지 아직 확실하지 않다면, WebdriverIO에서 컴포넌트 테스팅을 시작하는 방법에 대한 다음 튜토리얼을 시청하세요: