karma-skill について
karma-skillは、Karmaテストの設定と実行に関するリファレンススキルで、JasmineやAngularのプロジェクトを扱います。実運用向け設定、コンポーネントやサービスのテスト、非同期処理、CIワークフローを紹介します。
主な機能
- 01Karmaの設定と実行コマンド
- 02Jasmineのテストパターン
- 03Angularコンポーネントとサービスのテスト
- 04RxJSと非同期テストのパターン
- 05カバレッジ、CI、デバッグの手引き
活用シーン
- 01KarmaとJasmineのテストスイート構築
- 02Angularコンポーネント、HTTPサービス、ディレクティブのテスト
- 03RxJSの動作と非同期処理の後始末の確認
- 04カバレッジとCIテストレポートの設定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ lambdatest/ agent-skills --skill karma-skillインストール後、Claude Code で/karma-skillを入力して読み込まれたか確認します。
同梱ファイルreference/advanced-patterns.mdreference/playbook.md
詳細
Karma テストスキル
コアパターン
karma.conf.js
module.exports = function(config) {
config.set({
basePath: '',
frameworks: ['jasmine'],
files: [
'src/**/*.js',
'test/**/*.spec.js'
],
preprocessors: {
'src/**/*.js': ['coverage']
},
reporters: ['progress', 'coverage'],
coverageReporter: {
type: 'html',
dir: 'coverage/'
},
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome', 'Firefox'],
singleRun: false,
concurrency: Infinity,
// LambdaTest cloud browsers
customLaunchers: {
ChromeLT: {
base: 'WebDriver',
config: {
hostname: 'hub.lambdatest.com',
port: 80
},
browserName: 'Chrome',
version: 'latest',
name: 'Karma Test',
tunnel: true,
user: process.env.LT_USERNAME,
accessKey: process.env.LT_ACCESS_KEY
}
}
});
};
Jasmine フレームワークでのテスト
describe('StringUtils', () => {
it('should capitalize first letter', () => {
expect(StringUtils.capitalize('hello')).toBe('Hello');
});
it('should handle empty string', () => {
expect(StringUtils.capitalize('')).toBe('');
});
});
Angular との統合
// karma.conf.js for Angular
frameworks: ['jasmine', '@angular-devkit/build-angular'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-coverage'),
require('@angular-devkit/build-angular/plugins/karma')
],
セットアップ:npm install karma karma-jasmine karma-chrome-launcher karma-coverage --save-dev
実行:npx karma start または npx karma start --single-run
初期化:npx karma init karma.conf.js
応用パターン
本番環境向けのパターンについては、reference/playbook.md を参照してください。
| セクション | 内容 |
|---|---|
| §1 本番環境向けの設定 | カバレッジしきい値、レポーター、CI ランチャーを含む完全な karma.conf.js |
| §2 コンポーネントテスト | サービスのモック、DOM 操作、フォーム検証のパターン |
| §3 HTTP サービステスト | HttpTestingController、エラー処理、再試行のテスト |
| §4 ディレクティブとパイプのテスト | ホストコンポーネントのパターン、エッジケースを含むカスタムパイプ |
| §5 RxJS と非同期のパターン | debounceTime、switchMap によるキャンセル、サブスクリプションのクリーンアップ |
| §6 ルーターと NgRx のテスト | RouterTestingModule、MockStore、セレクターのオーバーライド |
| §7 LambdaTest との統合 | クロスブラウザテスト用のクラウドブラウザー設定 |
| §8 CI/CD との統合 | カバレッジとテストレポートを含む GitHub Actions |
| §9 デバッグ表 | よくある問題 12 件と原因および解決方法 |
| §10 ベストプラクティス | Angular の本番環境向けテストの 14 項目チェックリスト |
コメント
Markdown 対応