rails/vue.jsのアプリでjestを使用したテストを実装しています。
やりたいこと
babelではなく、ts-jestでjestを通したいです
(型検査を有効な状態で行いたい)
現状
npm run testコマンド実行すると下記のエラーが発生する。
terminal
FAIL tests/first.test.ts ● Test suite failed to run TypeError: Jest: a transform must export a `process` function. at ScriptTransformer._getTransformer (node_modules/@jest/transform/build/ScriptTransformer.js:360:13) at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:427:28) at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:569:40) at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:607:25) Test Suites: 1 failed, 1 total
packagejson
{ "name": "app", "version": "0.1.0", "private": true, "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build", "lint": "vue-cli-service lint", "test": "jest" //追加 }, "dependencies": { "core-js": "^3.6.5", "vue": "^2.6.11" }, "devDependencies": { "@types/jest": "^26.0.23", //追加 "@typescript-eslint/eslint-plugin": "^4.18.0", "@typescript-eslint/parser": "^4.18.0", "@vue/cli-plugin-babel": "~4.5.0", "@vue/cli-plugin-eslint": "~4.5.0", "@vue/cli-plugin-typescript": "~4.5.0", "@vue/cli-service": "^4.5.13", "@vue/eslint-config-prettier": "^6.0.0", "@vue/eslint-config-typescript": "^7.0.0", "eslint": "^6.7.2", "eslint-plugin-prettier": "^3.3.1", "eslint-plugin-vue": "^6.2.2", "jest": "^26.6.3", //追加 "prettier": "^2.2.1", "ts-jest": "^27.0.2", //追加 "typescript": "^4.1.5", "vue-jest": "^3.0.7", //追加 "vue-template-compiler": "^2.6.11" }, // 以下全て追加 "jest": { "moduleFileExtensions": [ "ts", "js", "json", "vue" ], "transform": { "^.+\.ts$": "ts-jest", }, "globals": { "ts-jest": { "tsConfig": "tsconfig.json" } }, "testMatch": [ "**/tests/**/*.test.ts" ] } }
tsconfigjson
{ "compilerOptions": { "target": "esnext", "module": "esnext", "strict": true, "jsx": "preserve", "importHelpers": true, "moduleResolution": "node", "skipLibCheck": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true, "sourceMap": true, "baseUrl": ".", "types": [ "webpack-env", "jest" // 追加 ], "paths": { "@/*": [ "src/*" ] }, "lib": [ "esnext", "dom", "dom.iterable", "scripthost" ] }, "include": [ "src/**/*.ts", "src/**/*.tsx", "src/**/*.vue", "tests/**/*.ts", "tests/**/*.tsx" ], "exclude": [ "node_modules" ] }
firsttestts
import greet from "../src/components/HelloWorld.vue"; describe('greet', (): void => { test('should say hello to Tom.', (): void => { const response: string = greet('Tom'); expect(response).toBe('Hello, Tom!'); }); })
試したこと
こことほぼ同じ状況なのかなと思っています。
バージョンが怪しいって話してるみたいで
npx jest --clearCacheして
"ts-jest": "^27.0.0"に変更して再度実行しましたが、エラーは変わらずでした。
どなたか詳しい方いましたら、ご教授いただきたいです。
よろしくお願いします。
まだ回答がついていません
会員登録して回答してみよう