关于 karma-skill
karma-skill 是配置和运行 Karma 测试的参考技能,涵盖 Jasmine 和 Angular 项目。内容包括生产环境配置、组件与服务测试、异步模式和 CI 工作流。
主要功能
- 01Karma 配置与运行命令
- 02Jasmine 测试模式
- 03Angular 组件与服务测试
- 04RxJS 和异步测试模式
- 05覆盖率、CI 与调试指南
适用场景
- 01搭建 Karma 和 Jasmine 测试套件
- 02测试 Angular 组件、HTTP 服务和指令
- 03检查 RxJS 行为及异步清理
- 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 生产环境配置 | 完整的 karma.conf.js,包含覆盖率阈值、报告器和 CI 启动器 |
| §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