SuperAPI AI 工具集

test-rule

测试与质量

查看项目

更新于 10-16 06:16

技能介绍

用途:为 SonarJS 的某条规则编写并运行测试,适用于规则测试、测试夹具编写和单条规则单元测试。

运行方式:使用 npx tsx --test packages/analysis/src/jsts/rules/S1234/**/*.test.ts,将 S1234 替换为实际规则编号。资料明确提示不要运行完整测试套件(npm run bridge:test),因为耗时过长。

RuleTester 选择:纯 JavaScript 规则用 DefaultParserRuleTester;不需要类型信息的 JS/TS 规则用 NoTypeCheckingRuleTester;需要 TypeScript 类型信息的规则用 RuleTester;旧式 JavaScript 或 Babel 专有语法(如 Flow 类型、装饰器提案)用 RuleTester 配合 @babel/eslint-parser。

基于注释的测试(推荐):测试文件命名为 .fixture.(如 cb.fixture.js、cb.fixture.ts),放在规则目录下。基本语法用 // Noncompliant {{消息}} 标记问题,// ^^^^^^ 下划线标记主要位置(可选但推荐)。快速修复用 [[qf1]] 与 fix@qf1、edit@qf1 注释;ESLint 修复(非建议)加 ! 后缀 [[qf1!]],且不得有 fix@ 注释。次要位置通过 toEncodedMessage 报告,夹具中用 < 或 > 表示次要位置在主位置之后或之前。行引用修饰符支持 @+1、@-1 和绝对行号 @2。规则选项放在规则目录的 cb.options.json 中,例如 [7, { "ignoreIIFE": true }]。依赖检测可用 process.chdir(__dirname) 使用本地 package.json。需要类型检查时可用 ESLint RuleTester 格式,从 ../../../tests/tools/testers/rule-tester.js 导入 RuleTester 并调用 ruleTester.run。快速修复操作支持 edit@qf 替换列区间或整行、add@qf 新增行、del@qf 删除行、add@qf@+1 在指定行后新增。多个问题与多个快速修复可用 [[qf1,,qf3]] 或 [[qf1,qf3=2]] 形式。

限制:资料未提供该技能的安装方式、收费、平台支持范围及完整测试套件运行建议之外的性能数据,这些暂未提供。