Svelte 애플리케이션의 Jest 구성
9129 단어 jestjavascriptsveltetutorial
최근에 저는 날씬한 애플리케이션을 만들었고 Jest로 테스트하고 싶습니다. Jest를 올바르게 구성하는 것은 그리 쉽지 않았기 때문에 내가 그것을 어떻게 수정하는지 보여주고 싶습니다.
내 svelte 프로젝트를 시작하기 위해 다음 명령을 사용했습니다.
npx degit sveltejs/template my-svelte-projec
cd my-svelte-project
npm install
npm run dev
그래서 저는 다음과 같은 프로젝트를 가졌습니다.
이제 모든 테스트 Jest 및 테스트 라이브러리와 DOM fr 테스트 라이브러리를 설치할 준비가 되었습니다.
npm install --save-dev jest @testing-library/svelte @testing-library/user-event @testing-library/dom
내 package.json에서 모두 제대로 설치되었는지 확인했습니다.
그리고 package.json에서 테스트를 실행하는 새 스크립트를 작성했습니다.
이 칭찬을 집행했을 때 나는 이것을 보았습니다.
아직 테스트 파일이 없기 때문입니다.
App.svelte가 실행될 때 브라우저에 "Hello word"텍스트가 표시되는지 테스트하기로 결정했습니다. 그래서 다음과 같은 첫 번째 테스트로 App.spec.js 파일을 만들었습니다.
import App from "./App.svelte
import { render, screen } from "@testing-library/svelte";
it("has Hello header", () =>{
render(App);
const header = screen.getAllByText("Hello word!");
expect(header).toBeTruthy()
});
테스트를 실행했을 때 다음 오류가 발생했습니다.
Jest가 App.svelte를 올바르게 읽을 수 없기 때문에 올바르게 가져오려면 이 파일을 jest에 대해 더 잘 처리할 수 있는 것으로 변환할 패키지가 필요합니다.
npm install svelte-jester -D
svelte-jester가 설치되면 package.json에서 jest를 구성할 차례입니다.
"jest":{
"transform": {
"^.+\\.svelte$": "svelte-jester"
}
}
그러나 App.spec.js 파일이 ES6 구문으로 작성되고 Jest가 이 구문을 자동으로 인식하지 않기 때문에 오류가 여전히 존재하므로 Jest를 올바르게 구성하려면 다른 패키지가 필요합니다.
npm i -D babel-jest @babel/preset-env
그래서 jest 구성을 완료해야 합니다.
"jest": {
"transform": {
"^.+\\.svelte$": "svelte-jester",
"^.+\\.js$": "babel-jest"
}
}
하지만 충분하지 않습니다. babel도 설정해야 합니다. 그래서 새 파일 babel.config.js를 만들고 다음 코드를 작성했습니다.
module.exports = { presets: [["@babel/preset-env", { targets: { node: "current" } }]],
};
하지만 여전히 오류가 있었습니다. 이번에는 잘못된 테스트 환경입니다.
따라서 패키지를 하나 더 설치해야 합니다.
npm i -D jest-environment-jsdom
package.json에서 jest 구성을 업데이트합니다.
"jest": {
"transform": {
"^.+\\.svelte$": "svelte-jester",
"^.+\\.js$": "babel-jest"
},
"testEnvironment": "jsdom"
}
그러나 App.spec.js도 있습니다.
/**
* @jest-environment jsdom
*/
import App from "./App.svelte"
import { render, screen } from "@testing-library/svelte";
it("has Hello header", () =>{
render(App);
const header = screen.getAllByText("Hello word!");
expect(header).toBeTruthy()
})
이번에는 모든 테스트를 사용할 준비가 되었습니다.
모두 잘 작동하지만 App.svelte를 업데이트해야 합니다.
<main>
<h1>Hello word!</h1>
</main>
이제 테스트는 녹색입니다.
svelte에서 jest를 구성하는 데 도움이 되기를 바랍니다.
Reference
이 문제에 관하여(Svelte 애플리케이션의 Jest 구성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/deotyma/the-jest-configuration-in-the-svelte-application-4dm5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)