質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Jest

Jestは、JavaScriptのテストフレームワークです。設定が不要で、高速且つ安全にテストを開始できます。コードカバレッジを生成できる他、テストスコープ外のオブジェクトを容易にモック化できるなど、豊富な機能によりテストの導入を簡単にします。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

866閲覧

[Jest@Typescript]テストが発見されない

kassyi

総合スコア9

Jest

Jestは、JavaScriptのテストフレームワークです。設定が不要で、高速且つ安全にテストを開始できます。コードカバレッジを生成できる他、テストスコープ外のオブジェクトを容易にモック化できるなど、豊富な機能によりテストの導入を簡単にします。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2024/02/27 16:19

実現したいこと

JestでTypescriptのテストを実行したい

発生している問題・分からないこと

コード変更時の自動実行では正常にテストが検出され実行されるが、以下の手動の方法ではテストが発見されず、テストが実行されない。

Jテストの実行ボタン
コンテキストメニュ(右クリックメニュー)→ Jest: RunRetaled Tests (Ctrl + Alt +T)

エラーメッセージ

error

1> cross-env NODE_OPTIONS="--experimental-vm-modules" jest --testLocationInResults --json --useStderr --outputFile C:\Users\xxxx\2.json --no-coverage --reporters default --reporters c:\Users\xxxxxx\.vscode\extensions\orta.vscode-jest-6.2.2\out\reporter.js --colors --watchAll=false --testPathPattern c:\\Users\xxxxxxxxx\\file\.test\.ts 2 3No tests found, exiting with code 1 4Run with `--passWithNoTests` to exit with code 0 5In C:\Users\xxxxx\www 6 45 files checked. 7 testMatch: - 0 matches 8 testPathIgnorePatterns: \\node_modules\\ - 45 matches 9 testRegex: .+\?.(spec|test)\?.[tj]s?(x)?$ - 0 matches 10Pattern: c:\Users\xxxxxxx\file\.test\.ts - 0 matches

該当のソースコード

jest.config.ts

1/** 2 * For a detailed explanation regarding each configuration property, visit: 3 * https://jestjs.io/docs/configuration 4 */ 5 6import type { Config } from "jest"; 7 8const config: Config = { 9 maxWorkers: "10%", 10 moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json"], 11 12 testEnvironment: "jsdom", 13 14 transform: { 15 "^.+\.tsx?$": "ts-jest", 16 }, 17 testRegex: [".+\\?\.(spec|test)\\?\.[tj]s?(x)?$"], 18 19 moduleNameMapper: { 20 "\\.(css|scss)$": "<rootDir>/node_modules/jest-css-modules", 21 }, 22}; 23export default config;

launch.json

1{ 2 "version": "0.2.0", 3 "configurations": [ 4 { 5 "name": "Debug Jest Tests", 6 "type": "node", 7 "request": "launch", 8 "runtimeArgs": [ 9 "--inspect-brk", 10 "${workspaceRoot}/node_modules/jest/bin/jest.js", 11 "--runInBand" 12 ], 13 "console": "integratedTerminal", 14 "internalConsoleOptions": "neverOpen" 15 }, 16 { 17 "type": "chrome", 18 "request": "launch", 19 "name": "Launch development server", 20 "url": "http://localhost:9223", 21 "webRoot": "${workspaceFolder}/dist", 22 "preLaunchTask": "build for debug", 23 "skipFiles": ["<node_internals>/**"], 24 "resolveSourceMapLocations": ["!**/node_modules/**"], 25 "trace": true, 26 "sourceMaps": true, 27 "sourceMapPathOverrides": { 28 "webpack:///cheetah-express/*": "${workspaceFolder}/*" 29 } 30 } 31 ] 32} 33

tasks.json

1{ 2 "version": "2.0.0", 3 "tasks": [ 4 { 5 "label": "build for debug", 6 "type": "npm", 7 "script": "devReBuild", 8 } 9 ] 10} 11

pacage.json

1 2{ 3(中略) 4 "scripts": { 5(中略) 6 "clean": "rimraf dist", 7 "start": "npm run dev", 8 "test": "cross-env NODE_OPTIONS=\"--experimental-vm-modules\" jest " 9 }, 10 "author": "", 11 "license": "ISC", 12 "devDependencies": { 13 "@jest/globals": "^29.7.0", 14 "@types/dotenv-webpack": "^7.0.7", 15 "@types/encoding-japanese": "^2.0.5", 16 "@types/jest": "^29.5.12", 17 "@types/node": "^20.11.17", 18 "css-loader": "^6.10.0", 19 "html-webpack-plugin": "^5.6.0", 20 "jest": "^29.7.0", 21 "jest-css-modules": "^2.1.0", 22 "jest-environment-jsdom": "^29.7.0", 23 "mini-css-extract-plugin": "^2.8.0", 24 "style-loader": "^3.3.4", 25 "ts-loader": "^9.5.1", 26 "ts-node": "^10.9.2", 27 "typescript": "^5.3.3", 28 "webpack": "^5.90.1", 29 "webpack-cli": "^5.1.4", 30 "webpack-dev-server": "^5.0.0" 31 }, 32 "dependencies": { 33 "@popperjs/core": "^2.11.8", 34 "@types/bootstrap": "^5.2.10", 35 "bootstrap": "^5.3.2", 36 "cross-env": "^7.0.3", 37 "dotenv-webpack": "^8.0.1", 38 "encoding-japanese": "^2.0.0", 39 "graphemesplit": "^2.4.4", 40 "npm-run-all": "^4.1.5", 41 "rimraf": "^5.0.5", 42 "ts-jest": "^29.1.2" 43 } 44}

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

開発環境のファイルパス中に日本語などのマルチバイト文字や記号などが入っていると全くテストが動作しなかったが、これらを排除することによりコード変更時の自動テストは動作するようになった。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

package.jsonの一部を以下のように書き換える事によってテストが検出されるようになった。

package.json

1{ 2"scripts": { 3"test": "cross-env NODE_OPTIONS=\"--experimental-vm-modules\" jest \".+\\.test\\.ts$\" --watchAll" 4}

参考: https://jestjs.io/docs/cli#jest-regexfortestfiles

投稿2024/02/27 17:16

kassyi

総合スコア9

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問