LoginSignup
1
0

More than 1 year has passed since last update.

Angular13->14へバージョンアップ後、Jestデバッグ時に`Error: Unknown arguments: testMatch, runInBand`エラーが出た際の対処法

Posted at

はじめに

AngularのテストフレームワークをJestに移行後、
Angular13->14へバージョンアップした際に起きたエラーについての備忘録です。
単純に自分の確認不足のエラーでしたが、戒めとして残します。

エラー時のバージョン


     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/
    

Angular CLI: 14.2.10
Node: 16.10.0
Package Manager: npm 7.24.0 
OS: linux arm64

Angular: 14.2.12
... animations, common, compiler, compiler-cli, core, forms
... language-service, localize, platform-browser
... platform-browser-dynamic, router

Package                            Version
------------------------------------------------------------
@angular-devkit/architect          0.1402.10
@angular-devkit/build-angular      14.2.10
@angular-devkit/core               14.2.10
@angular-devkit/schematics         14.2.10
@angular/cdk                       14.2.7
@angular/cli                       14.2.10
@angular/material                  14.2.7
@angular/material-moment-adapter   14.2.7
@schematics/angular                14.2.10
rxjs                               6.5.5
typescript                         4.6.4

現象

Angular14にバージョンアップ後、
VSCodeのデバッガでデバッグ実行をすると下記のエラーが発生しました。

Error: Unknown arguments: testMatch, runInBand

npx test ${filepath}ではテストが実行されますが、VSCode拡張機能のJestRunnerでも同様のエラーが発生する状態でした。

ちゃんと確認してみると、angular-buildersのMIGRATION.MDに記載がありました。

キャメルケースのコマンドライン引数はサポートされなくなりました。

解決

VSCodeのデバッガの引数が原因だったので、
settings.jsonのargsをケバブケースに修正することで解決しました🎉

変更前

settings.json
{
  // 省略
  "launch": {
    "configurations": [
      {
        "type": "node",
        "request": "launch",
        "name": "Jest All",
        "program": "${workspaceFolder}/node_modules/@angular/cli/bin/ng",
        "cwd": "${workspaceFolder}",
        "args": [
          "test",
          "--testMatch=\"**/+(*.)+(spec|test).+(ts|js)?(x)\"",
          "--runInBand"
        ],
        "console": "integratedTerminal",
        "internalConsoleOptions": "neverOpen"
      },
    ]
  },
  // 以下、省略
}

変更後

settings.json
{
  // 省略
  "launch": {
    "configurations": [
      {
        "type": "node",
        "request": "launch",
        "name": "Jest All",
        "program": "${workspaceFolder}/node_modules/@angular/cli/bin/ng",
        "cwd": "${workspaceFolder}",
        "args": [
          "test",
          "--test-match=\"**/+(*.)+(spec|test).+(ts|js)?(x)\"",
          "--run-in-band"
        ],
        "console": "integratedTerminal",
        "internalConsoleOptions": "neverOpen"
      },
    ]
  },
  // 以下、省略
}

まとめ

Angularのバージョンアップ時はangular-buildersのMIGRATION.MDも忘れず確認する。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0