4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Mac と Debian stretch とで Jest の coverage 結果が違った話

Posted at

概要

ある開発中プロジェクトで、これまで JS のテストカバレッジを活用出来ていなかったため軽い気持ちでやっていきをしたら、
開発環境では設定した閾値を越えるのに CI 上ではパスしないためデプロイできないという状況が起こりました。

環境

  • 開発マシン
    • OS: maxOS 10.12.6
    • Node.js: 10.8.0
    • npm: 6.3.0
  • CI (Wercker)
    • OS: Debian stretch-slim
    • Node.js: 8.x
    • npm: 6.x

どちらも Jest のバージョンは 23.4.1 を利用しており、
設定も package.json に記述しているため共通のものを利用しています。
また、カバレッジに関する設定は閾値の設定しか行っていません。

Jest 実行時のコマンドは以下。

jest ./resources/assets/js --no-cache --coverage

結果

  • 閾値を設定したままデプロイ出来るようになりました。
  • 開発環境、CI環境のカバレッジが一致するようになりました。
    • カバー率が一致しなかったのは、実行するテストコード自体が 100% でカバレッジに含まれてしまっていたためでした。
    • macOS でテストコードの分が計上されていた事と、反対に Debian 環境上では計上されなかった事の理由は調べられていません。ご存知もしくは心当たりのある方がいらしたら教えてください :pray:

やったこと

Node.js のバージョンを合わせてみたりしましたが、関係無いようでした。
最終的に package.json の Jest の設定に以下を追加しました。

coveragePathIgnorePatterns [array]
https://jestjs.io/docs/en/configuration.html#coveragepathignorepatterns-array-string

{
  "jest": {
    "coveragePathIgnorePatterns": [
      "__tests__",
      "\\.spec\\.js",
      "\\.spec\\.ts"
    ]
  }
}

フォーマットは正規表現っぽいんでもうちょっと綺麗に出来るんじゃないかなぁと思います。

4
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
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?