Skip to main content

ruling

Run ruling integration tests and update expected results for SonarJS rules. Use when running ruling tests or syncing expected ruling output.

Aller à l'installation

Informations de source

Dépôt
SonarSource/SonarJS
Dernière activité de la source
4 mars 2026 à 16:34
Langue détectée de SKILL.md
anglais
Étoiles
1 291
Forks
192

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
ruling
description
Run ruling integration tests and update expected results for SonarJS rules. Use when running ruling tests or syncing expected ruling output.
disable-model-invocation
true
## Overview Ruling tests analyze large third-party codebases (JS/TS and CSS) and compare issues against expected output. Run them when adding or modifying rules to verify real-world behavior. > **Warning:** Running ruling tests removes `node_modules` from the project root. Run `npm ci` afterward. ## Running Ruling ```bash # Prerequisites: init submodules, install dependencies, build JS/TS, then rebuild the jar git submodule update --init --recursive npm install npm run bbf mvn install -DskipTests # Run ruling (JS/TS and CSS) npm run ruling # Sync actual → expected (after reviewing output) npm run ruling-sync # Debug differences sh tools/ruling-debug-script.sh ``` Results: - Actual: `packages/ruling/actual/` - Expected: `its/ruling/src/test/expected/` ## Java Ruling (Old Way) ```bash cd its/ruling mvn verify -Dtest=RulingTest -Dmaven.test.redirectTestOutputToFile=false ``` Copy actual to expected: ```bash cp -R target/actual/ src/test/expected/ ``` Review diff: ```bash diff -rq src/test/expected target/actual ``` ## Custom Source Files for New Rules If a new rule raises no issues on existing sources, add test code: - `its/sources/custom/jsts/S1234.js` — regular code - `its/sources/custom/jsts/tests/S1234.js` — test code Copy from RSPEC HTML description (compliant/non-compliant examples). ## Debugging with Node Process To debug the Node.js bridge during ruling: 1. Start your Node.js process manually 2. Set `SONARJS_EXISTING_NODE_PROCESS_PORT=<port>` 3. Remove `@Execution(ExecutionMode.CONCURRENT)` from the ruling test class (for serial execution) ## Submodule Setup If submodules aren't checked out: ```bash git submodule init git submodule update ```
Voir sur GitHub