Jest
Jest는 방대한 생태계를 가진 일반적인 테스트 러너입니다. Turborepo와 통합하면 엄청난 속도 향상을 얻을 수 있습니다.
Good to know:
This guide assumes you're using create-turbo or a repository with a similar structure.설정
다음과 같은 monorepo가 있다고 가정해 봅시다:
package.json
package.json
테스트 스위트를 계획하는 패키지에 jest를 설치합니다. 이 예제에서는 web과 @repo/ui에 테스트가 있습니다:
apps/web과 packages/ui 모두 자체 테스트 스위트가 있으므로 package.json에 test 스크립트를 추가합니다:
루트 turbo.json 내부에 test 작업을 만듭니다:


이제 turbo test는 각 패키지의 모든 테스트 스위트를 병렬화하고 캐시하여 변경된 코드만 테스트합니다.
watch 모드에서 테스트 실행
테스트 스위트를 정상적으로 실행하면 완료되고 stdout에 출력됩니다. 즉, Turborepo로 캐시할 수 있습니다.
하지만 watch 모드에서 테스트를 실행하면 프로세스가 종료되지 않습니다. 이로 인해 watch 작업은 개발 작업과 더 비슷합니다.
이러한 차이로 인해 두 개의 별도 Turborepo 작업을 지정하는 것을 권장합니다: 하나는 테스트를 실행하는 것이고, 다른 하나는 Jest의 watch 모드에서 실행하는 것입니다. 각 워크스페이스의 각 package.json 파일 내부에:
루트 turbo.json 내부에:


전역 turbo를 turbo test:watch로 사용하거나 루트 package.json의 스크립트에서 이 작업을 실행할 수 있습니다: