테스트
Electron의 코드 커버리지를 높게 유지하는 것을 목표로 한다. 모든 풀 리퀘스트가 기존 테스트를 통과할 뿐만 아니라, 변경된 코드와 새로운 시나리오를 다루는 테스트도 추가하는 것이 이상적이다. 가능한 많은 코드 경로와 Electron의 사용 사례를 테스트로 확보하면, 버그가 적은 앱을 배포할 수 있다.
이 저장소에는 JavaScript와 C++에 대한 린팅 규칙과 단위 테스트, 통합 테스트가 포함되어 있다. Electron의 코딩 스타일에 대해 더 알아보려면 코딩 스타일 문서를 참고한다.
코드 검사(Linting)
Electron 코딩 스타일을 준수하는지 확인하려면 npm run lint
를 실행한다. 이 명령어는 변경된 코드 영역에 따라 다양한 검사를 수행한다.
대부분의 검사는 커밋 전 훅(precommit hook)으로 포함되어 있어, 커밋 시점에 오류를 발견할 가능성이 높다.
유닛 테스트
build-tools를 사용하지 않는 경우, 로컬에서 빌드한 Electron의 이름이 Testing
, Release
, Default
중 하나인지 확인한다. 또는 process.env.ELECTRON_OUT_DIR
을 설정해야 한다. 이 설정이 없으면 Electron은 테스트 전 단계에서 실패할 수 있다.
모든 유닛 테스트를 실행하려면 npm run test
명령어를 사용한다. 유닛 테스트는 Electron 앱으로, spec
폴더에서 찾을 수 있다. 이 테스트 앱은 자체 package.json
을 가지고 있으므로, 최상위 package.json
에 의존성이 정의되어 있지 않다는 점에 유의한다.
특정 패턴에 맞는 테스트만 실행하려면 npm run test -- -g=PATTERN
명령어를 사용한다. 여기서 PATTERN
은 실행하려는 테스트와 일치하는 정규식으로 대체한다. 예를 들어, IPC 테스트만 실행하려면 npm run test -- -g ipc
를 실행한다.
Node.js 스모크 테스트
Electron에 Node.js가 내장되는 방식에 영향을 줄 수 있는 변경을 했다면, Electron의 커스텀 Node.js 포크를 사용해 Node.js의 모든 테스트를 실행하는 테스트 러너를 활용할 수 있다.
모든 Node.js 테스트를 실행하려면 다음 명령어를 사용한다:
$ node script/node-spec-runner.js
특정 Node.js 테스트 하나만 실행하려면 다음 명령어를 사용한다:
$ node script/node-spec-runner.js parallel/test-crypto-keygen
여기서 테스트 러너에 전달하는 인자는 Node.js 소스 트리에서 테스트 파일의 경로다.
Windows 10 기기에서 테스트 실행하기
단위 테스트를 실행하기 위한 추가 단계:
-
Visual Studio 2019를 반드시 설치해야 한다.
-
Node 헤더를 현재 설정에 맞게 컴파일해야 한다.
ninja -C out\Testing electron:node_headers
-
electron.lib 파일을 node.lib로 복사해야 한다.
cd out\Testing
mkdir gen\node_headers\Release
copy electron.lib gen\node_headers\Release\node.lib
폰트 누락 문제
일부 Windows 10 디바이스는 Meiryo 폰트가 기본적으로 설치되어 있지 않아 폰트 대체 테스트가 실패할 수 있다. Meiryo 폰트를 설치하려면 다음 단계를 따르면 된다:
- 윈도우 키를 누르고 _선택적 기능 관리_를 검색한다.
- _기능 추가_를 클릭한다.
- _일본어 보조 폰트_를 선택하고 _설치_를 클릭한다.
픽셀 측정 관련 주의사항
정밀한 픽셀 측정에 의존하는 일부 테스트는 Hi-DPI 화면 설정을 사용하는 기기에서 부동소수점 정밀도 오류로 인해 정상적으로 작동하지 않을 수 있다. 이러한 테스트를 올바르게 실행하려면 기기의 배율 설정을 100%로 맞춰야 한다.
디스플레이 배율 설정 방법:
- 윈도우 키를 누르고 _디스플레이 설정_을 검색한다.
- 배율 및 레이아웃 섹션에서 기기 배율이 100%로 설정되어 있는지 확인한다.