babel-plugin-canyon
SourceCI環境変数を検出し、istanbuljsと連携してコードの計装を行うBabelプラグインです。
使用方法
インストール:
npm install --save-dev babel-plugin-canyon
babel.config.js
に以下の設定を追加します:
module.exports = {
plugins:
process.env.CI_COMMIT_REF_NAME === "test-coverage"
? ["istanbul", "canyon"]
: [],
// 注意:canyonプラグインはistanbulプラグインの後に配置する必要があります
};
以下の2つの処理を行います:
- CI環境変数の検出
- 前段階のistanbul計装結果の確認とローカルへの保存(keepMapがfalseの場合)
設定
babel.config.js
module.exports = {
plugins: [
"istanbul",
[
"canyon",
{
// #region == ステップ1: CI変数の設定または手動での明示的な設定
dsn: "http://yourdomain.com/coverage/client", // カバレッジレポート送信先URL、CI環境変数のキーは DSN
reporter: "your_token", // ユーザートークン、異なるユーザーを区別するために使用、CI環境変数のキーは REPORTER
// #endregion
// #region == ステップ2: CI Providerの自動検出、通常は手動設定不要、詳細は Support Provider ドキュメントを参照
projectID: "230614", // リポジトリID
sha: "xxxxxxxxx", // Gitコミットのハッシュ値
branch: "master", // Gitリポジトリのブランチ
// #endregion
// #region == ステップ3: カバレッジの追加機能設定(オプション)
reportID: "case_id", // 異なるテストケースを区別するために使用
compareTarget: "develop", // 比較対象、現在のSHAのベースラインとして使用し、変更行のカバレッジを計算
// #endregion
// #region == ステップ4: hitとmapデータの分離(オプション)
keepMap: true, // カバレッジマップの保持、オプション、デフォルトはtrue、falseの場合は.canyon_outputファイルが生成されます
// #endregion
// #region == ステップ5: その他の設定(オプション)
instrumentCwd: "/path/to", // 計装の作業ディレクトリ、マルチリポジトリモードでは手動設定が必要な場合があります
provider: "gitlab", // ソースコードプロバイダー(オプション)、デフォルトは gitlab
oneByOne: false, // プロキシサーバーの設定、オプション、デフォルトはfalse。trueの場合、コンパイル時に各ファイルの初期カバレッジデータを順次報告します。プロキシサーバーの設定も可能です。
// #endregion
},
],
],
};
設定項目 | 説明 | 必須 | デフォルト値 |
---|---|---|---|
dsn | カバレッジレポート送信先URL、CI環境変数のキーは DSN | はい(CI変数設定または手動設定で必要) | なし |
reporter | ユーザートークン、異なるユーザーを区別するために使用、CI環境変数のキーは REPORTER | はい(CI変数設定または手動設定で必要) | なし |
projectID | リポジトリID | 通常は手動設定不要(CI Provider自動検出) | なし |
sha | GitコミットのSHA | 通常は手動設定不要(CI Provider自動検出) | なし |
branch | Gitリポジトリのブランチ | 通常は手動設定不要(CI Provider自動検出) | なし |
reportID | 異なるテストケースを区別するために使用 | オプション | なし |
compareTarget | 比較対象、現在のSHAのベースラインとして使用し、変更行のカバレッジを計算 | オプション | なし |
keepMap | カバレッジマップの保持、オプション、デフォルトはtrue、falseの場合は.canyon_outputファイルが生成されます | オプション | true |
instrumentCwd | 計装の作業ディレクトリ、マルチリポジトリモードでは手動設定が必要な場合があります | オプション | process.cwd() |
provider | ソースコードプロバイダー(オプション)、デフォルトは gitlab | オプション | gitlab |
oneByOne | プロキシサーバーの設定、オプション、デフォルトはfalse。trueの場合、コンパイル時に各ファイルの初期カバレッジデータを順次報告します。プロキシサーバーの設定も可能です。 | オプション | false |