mjolnir-qa 0.5.39 → 0.6.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +179 -0
- package/README.ar.md +8 -19
- package/README.bn.md +2 -13
- package/README.br.md +14 -25
- package/README.bs.md +8 -19
- package/README.da.md +2 -13
- package/README.de.md +2 -13
- package/README.es.md +8 -19
- package/README.fr.md +33 -44
- package/README.gr.md +8 -19
- package/README.he.md +2 -13
- package/README.it.md +14 -25
- package/README.ja.md +2 -13
- package/README.ko.md +2 -13
- package/README.md +49 -46
- package/README.no.md +8 -19
- package/README.pl.md +7 -18
- package/README.ru.md +14 -25
- package/README.th.md +2 -13
- package/README.tr.md +8 -19
- package/README.uk.md +8 -19
- package/README.vi.md +2 -13
- package/README.zh.md +2 -13
- package/README.zht.md +2 -13
- package/dist/cli.d.mts +51 -8
- package/dist/cli.mjs +9970 -10210
- package/dist/mcp/stdio.mjs +10629 -10869
- package/package.json +3 -1
package/README.es.md
CHANGED
|
@@ -15,7 +15,7 @@ exactamente dónde se rompe la confianza.
|
|
|
15
15
|
|
|
16
16
|
[English](README.md) | [简体中文](README.zh.md) | [繁體中文](README.zht.md) | [한국어](README.ko.md) | [Deutsch](README.de.md) | Español | [Français](README.fr.md) | [Italiano](README.it.md) | [Dansk](README.da.md) | [日本語](README.ja.md) | [Polski](README.pl.md) | [Русский](README.ru.md) | [Norsk](README.no.md) | [Português (Brasil)](README.br.md) | [ไทย](README.th.md) | [Türkçe](README.tr.md) | [Українська](README.uk.md) | [বাংলা](README.bn.md) | [Ελληνικά](README.gr.md) | [Tiếng Việt](README.vi.md) | [עברית](README.he.md) | [العربية](README.ar.md) | [Bosanski](README.bs.md)
|
|
17
17
|
|
|
18
|
-
> 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-
|
|
18
|
+
> 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-08.
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
21
|
npx mjolnir-qa@latest
|
|
@@ -204,7 +204,6 @@ ese es el cortafuegos de falsos positivos.
|
|
|
204
204
|
|
|
205
205
|
| ID | Regla | Severity |
|
|
206
206
|
| ------------ | ----------------------------- | -------- |
|
|
207
|
-
| QA-TQUAL-001 | Verificación solo con mocks | info |
|
|
208
207
|
| QA-TQUAL-002 | Aserción tautológica | error |
|
|
209
208
|
| QA-TQUAL-009 | Aserción de promesa sin await | error |
|
|
210
209
|
| QA-TQUAL-011 | Tests comentados | warning |
|
|
@@ -214,15 +213,12 @@ ese es el cortafuegos de falsos positivos.
|
|
|
214
213
|
<details>
|
|
215
214
|
<summary><strong>Playwright 🎭</strong></summary>
|
|
216
215
|
|
|
217
|
-
| ID | Regla
|
|
218
|
-
| --------- |
|
|
219
|
-
| QA-PW-002 | Aserción de locator sin await
|
|
220
|
-
| QA-PW-003 | `page.pause()` / `test.only()` committeados
|
|
221
|
-
| QA-PW-004 | Selectores CSS/XPath frágiles
|
|
222
|
-
| QA-PW-
|
|
223
|
-
| QA-PW-114 | Element handles heredados (`page.$`) | info |
|
|
224
|
-
| QA-PW-118 | Esperas `networkidle` (inestables por diseño) | info |
|
|
225
|
-
| QA-PW-123 | URLs de entorno hardcodeadas | warning |
|
|
216
|
+
| ID | Regla | Severity |
|
|
217
|
+
| --------- | ------------------------------------------- | -------- |
|
|
218
|
+
| QA-PW-002 | Aserción de locator sin await | error |
|
|
219
|
+
| QA-PW-003 | `page.pause()` / `test.only()` committeados | error |
|
|
220
|
+
| QA-PW-004 | Selectores CSS/XPath frágiles | warning |
|
|
221
|
+
| QA-PW-123 | URLs de entorno hardcodeadas | warning |
|
|
226
222
|
|
|
227
223
|
</details>
|
|
228
224
|
|
|
@@ -249,8 +245,6 @@ ese es el cortafuegos de falsos positivos.
|
|
|
249
245
|
| QA-PY-002 | Test saltado (`skip`, `xfail` no estricto) | warning |
|
|
250
246
|
| QA-PY-003 | Función de test sin aserciones | error |
|
|
251
247
|
| QA-PY-005 | `time.sleep()` en tests | warning |
|
|
252
|
-
| QA-PY-006 | Cuerpo de test vacío (`pass`) | info |
|
|
253
|
-
| QA-PY-010 | Dependencia de azar/tiempo sin freeze | info |
|
|
254
248
|
| QA-PY-012 | Aserción tautológica | error |
|
|
255
249
|
|
|
256
250
|
20 reglas de Python en total (QA-PY-001…012 higiene pytest + QA-PY-101…108 Playwright-Python).
|
|
@@ -267,8 +261,6 @@ ese es el cortafuegos de falsos positivos.
|
|
|
267
261
|
| QA-JV-103 | Método de test sin aserciones | error |
|
|
268
262
|
| QA-JV-105 | Sleep en duro de Playwright `waitForTimeout()` | warning |
|
|
269
263
|
| QA-JV-106 | Selector frágil en vez de role locator | warning |
|
|
270
|
-
| QA-JV-108 | URL de entorno hardcodeada en el test | info |
|
|
271
|
-
| QA-JV-111 | Mock en blanquete `page.route("**")` | info |
|
|
272
264
|
|
|
273
265
|
</details>
|
|
274
266
|
|
|
@@ -282,8 +274,6 @@ ese es el cortafuegos de falsos positivos.
|
|
|
282
274
|
| QA-CS-103 | Método de test sin aserciones | error |
|
|
283
275
|
| QA-CS-105 | Sleep en duro `WaitForTimeoutAsync()` | warning |
|
|
284
276
|
| QA-CS-106 | Selector frágil en vez de role locator | warning |
|
|
285
|
-
| QA-CS-108 | URL de entorno hardcodeada en el test | info |
|
|
286
|
-
| QA-CS-111 | Mock en blanquete `page.RouteAsync("**")` | info |
|
|
287
277
|
|
|
288
278
|
</details>
|
|
289
279
|
|
|
@@ -305,7 +295,6 @@ código OSS real** (≥ 10 hallazgos clasificados a mano cada una; ver
|
|
|
305
295
|
estimación del autor. Cada pie de escaneo te dice cuántas de las reglas
|
|
306
296
|
_que se dispararon_ están medidas; `mjolnir rules --unmeasured` lista
|
|
307
297
|
las que no; la página `mjolnir explain` de cada regla declara su
|
|
308
|
-
estado. Publicamos la tasa aunque sea fea — QA-PW-107 audita al 95 % y
|
|
309
298
|
está en cuarentena por ello. Hacer crecer esa cifra es el trabajo continuo
|
|
310
299
|
del proyecto.
|
|
311
300
|
|
|
@@ -531,7 +520,7 @@ nunca cambia la semántica de detección.
|
|
|
531
520
|
{
|
|
532
521
|
"gate": "error",
|
|
533
522
|
"exclude": ["legacy/**"],
|
|
534
|
-
"severityOverrides": { "QA-PW-
|
|
523
|
+
"severityOverrides": { "QA-PW-141": "warning" },
|
|
535
524
|
"ignore": [
|
|
536
525
|
{
|
|
537
526
|
"ruleId": "QA-TEST-004",
|
package/README.fr.md
CHANGED
|
@@ -15,7 +15,7 @@ exactement où la confiance se brise.
|
|
|
15
15
|
|
|
16
16
|
[English](README.md) | [简体中文](README.zh.md) | [繁體中文](README.zht.md) | [한국어](README.ko.md) | [Deutsch](README.de.md) | [Español](README.es.md) | Français | [Italiano](README.it.md) | [Dansk](README.da.md) | [日本語](README.ja.md) | [Polski](README.pl.md) | [Русский](README.ru.md) | [Norsk](README.no.md) | [Português (Brasil)](README.br.md) | [ไทย](README.th.md) | [Türkçe](README.tr.md) | [Українська](README.uk.md) | [বাংলা](README.bn.md) | [Ελληνικά](README.gr.md) | [Tiếng Việt](README.vi.md) | [עברית](README.he.md) | [العربية](README.ar.md) | [Bosanski](README.bs.md)
|
|
17
17
|
|
|
18
|
-
> 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-
|
|
18
|
+
> 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-08.
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
21
|
npx mjolnir-qa@latest
|
|
@@ -203,27 +203,23 @@ sortir — c'est le pare-feu anti faux positifs.
|
|
|
203
203
|
<details>
|
|
204
204
|
<summary><strong>Qualité des tests</strong></summary>
|
|
205
205
|
|
|
206
|
-
| ID | Règle
|
|
207
|
-
| ------------ |
|
|
208
|
-
| QA-TQUAL-
|
|
209
|
-
| QA-TQUAL-
|
|
210
|
-
| QA-TQUAL-
|
|
211
|
-
| QA-TQUAL-011 | Tests commentés | warning |
|
|
206
|
+
| ID | Règle | Severity |
|
|
207
|
+
| ------------ | -------------------------------- | -------- |
|
|
208
|
+
| QA-TQUAL-002 | Assertion tautologique | error |
|
|
209
|
+
| QA-TQUAL-009 | Assertion de promise non awaitée | error |
|
|
210
|
+
| QA-TQUAL-011 | Tests commentés | warning |
|
|
212
211
|
|
|
213
212
|
</details>
|
|
214
213
|
|
|
215
214
|
<details>
|
|
216
215
|
<summary><strong>Playwright 🎭</strong></summary>
|
|
217
216
|
|
|
218
|
-
| ID | Règle
|
|
219
|
-
| --------- |
|
|
220
|
-
| QA-PW-002 | Assertion de locator non awaitée
|
|
221
|
-
| QA-PW-003 | `page.pause()` / `test.only()` commités
|
|
222
|
-
| QA-PW-004 | Sélecteurs CSS/XPath fragiles
|
|
223
|
-
| QA-PW-
|
|
224
|
-
| QA-PW-114 | Element handles historiques (`page.$`) | info |
|
|
225
|
-
| QA-PW-118 | Attentes `networkidle` (instables de conception) | info |
|
|
226
|
-
| QA-PW-123 | URLs d'environnement codées en dur | warning |
|
|
217
|
+
| ID | Règle | Severity |
|
|
218
|
+
| --------- | --------------------------------------- | -------- |
|
|
219
|
+
| QA-PW-002 | Assertion de locator non awaitée | error |
|
|
220
|
+
| QA-PW-003 | `page.pause()` / `test.only()` commités | error |
|
|
221
|
+
| QA-PW-004 | Sélecteurs CSS/XPath fragiles | warning |
|
|
222
|
+
| QA-PW-123 | URLs d'environnement codées en dur | warning |
|
|
227
223
|
|
|
228
224
|
</details>
|
|
229
225
|
|
|
@@ -245,14 +241,12 @@ sortir — c'est le pare-feu anti faux positifs.
|
|
|
245
241
|
<details>
|
|
246
242
|
<summary><strong>Python / pytest 🐍</strong></summary>
|
|
247
243
|
|
|
248
|
-
| ID | Règle
|
|
249
|
-
| --------- |
|
|
250
|
-
| QA-PY-002 | Test sauté (`skip`, `xfail` non strict)
|
|
251
|
-
| QA-PY-003 | Fonction de test sans assertion
|
|
252
|
-
| QA-PY-005 | `time.sleep()` dans les tests
|
|
253
|
-
| QA-PY-
|
|
254
|
-
| QA-PY-010 | Dépendance au hasard/au temps sans freeze | info |
|
|
255
|
-
| QA-PY-012 | Assertion tautologique | error |
|
|
244
|
+
| ID | Règle | Severity |
|
|
245
|
+
| --------- | --------------------------------------- | -------- |
|
|
246
|
+
| QA-PY-002 | Test sauté (`skip`, `xfail` non strict) | warning |
|
|
247
|
+
| QA-PY-003 | Fonction de test sans assertion | error |
|
|
248
|
+
| QA-PY-005 | `time.sleep()` dans les tests | warning |
|
|
249
|
+
| QA-PY-012 | Assertion tautologique | error |
|
|
256
250
|
|
|
257
251
|
20 règles Python au total (QA-PY-001…012 hygiène pytest + QA-PY-101…108 Playwright-Python).
|
|
258
252
|
|
|
@@ -261,30 +255,26 @@ sortir — c'est le pare-feu anti faux positifs.
|
|
|
261
255
|
<details>
|
|
262
256
|
<summary><strong>Java / JUnit · TestNG ☕</strong></summary>
|
|
263
257
|
|
|
264
|
-
| ID | Règle
|
|
265
|
-
| --------- |
|
|
266
|
-
| QA-JV-101 | Test désactivé (`@Disabled`)
|
|
267
|
-
| QA-JV-102 | Sleep en dur (`Thread.sleep()`)
|
|
268
|
-
| QA-JV-103 | Méthode de test sans assertion
|
|
269
|
-
| QA-JV-105 | Sleep en dur Playwright `waitForTimeout()`
|
|
270
|
-
| QA-JV-106 | Sélecteur fragile au lieu d'un role locator
|
|
271
|
-
| QA-JV-108 | URL d'environnement codée en dur dans le test | info |
|
|
272
|
-
| QA-JV-111 | Mock blanket `page.route("**")` | info |
|
|
258
|
+
| ID | Règle | Severity |
|
|
259
|
+
| --------- | ------------------------------------------- | -------- |
|
|
260
|
+
| QA-JV-101 | Test désactivé (`@Disabled`) | warning |
|
|
261
|
+
| QA-JV-102 | Sleep en dur (`Thread.sleep()`) | warning |
|
|
262
|
+
| QA-JV-103 | Méthode de test sans assertion | error |
|
|
263
|
+
| QA-JV-105 | Sleep en dur Playwright `waitForTimeout()` | warning |
|
|
264
|
+
| QA-JV-106 | Sélecteur fragile au lieu d'un role locator | warning |
|
|
273
265
|
|
|
274
266
|
</details>
|
|
275
267
|
|
|
276
268
|
<details>
|
|
277
269
|
<summary><strong>C# / .NET — NUnit · xUnit · MSTest 🟣</strong></summary>
|
|
278
270
|
|
|
279
|
-
| ID | Règle
|
|
280
|
-
| --------- |
|
|
281
|
-
| QA-CS-101 | Test sauté (`[Ignore]`, `[Fact(Skip=)]`)
|
|
282
|
-
| QA-CS-102 | Sleep en dur (`Thread.Sleep` / `Task.Delay`)
|
|
283
|
-
| QA-CS-103 | Méthode de test sans assertion
|
|
284
|
-
| QA-CS-105 | Sleep en dur `WaitForTimeoutAsync()`
|
|
285
|
-
| QA-CS-106 | Sélecteur fragile au lieu d'un role locator
|
|
286
|
-
| QA-CS-108 | URL d'environnement codée en dur dans le test | info |
|
|
287
|
-
| QA-CS-111 | Mock blanket `page.RouteAsync("**")` | info |
|
|
271
|
+
| ID | Règle | Severity |
|
|
272
|
+
| --------- | -------------------------------------------- | -------- |
|
|
273
|
+
| QA-CS-101 | Test sauté (`[Ignore]`, `[Fact(Skip=)]`) | warning |
|
|
274
|
+
| QA-CS-102 | Sleep en dur (`Thread.Sleep` / `Task.Delay`) | warning |
|
|
275
|
+
| QA-CS-103 | Méthode de test sans assertion | error |
|
|
276
|
+
| QA-CS-105 | Sleep en dur `WaitForTimeoutAsync()` | warning |
|
|
277
|
+
| QA-CS-106 | Sélecteur fragile au lieu d'un role locator | warning |
|
|
288
278
|
|
|
289
279
|
</details>
|
|
290
280
|
|
|
@@ -307,7 +297,6 @@ l'estimation de l'auteur. Chaque pied de scan vous dit combien des
|
|
|
307
297
|
règles _déclenchées_ sont mesurées ; `mjolnir rules --unmeasured` liste
|
|
308
298
|
celles qui ne le sont pas ; la page `mjolnir explain` de chaque règle
|
|
309
299
|
énonce son statut. Nous publions le taux même quand il est laid —
|
|
310
|
-
QA-PW-107 s'audite à 95 % et est mis en quarantaine pour ça. Faire
|
|
311
300
|
grandir ce chiffre est le travail continu du projet.
|
|
312
301
|
|
|
313
302
|
### Tiers de règles et maturité par langage
|
|
@@ -534,7 +523,7 @@ périmètre — il ne change jamais la sémantique de détection.
|
|
|
534
523
|
{
|
|
535
524
|
"gate": "error",
|
|
536
525
|
"exclude": ["legacy/**"],
|
|
537
|
-
"severityOverrides": { "QA-PW-
|
|
526
|
+
"severityOverrides": { "QA-PW-141": "warning" },
|
|
538
527
|
"ignore": [
|
|
539
528
|
{
|
|
540
529
|
"ruleId": "QA-TEST-004",
|
package/README.gr.md
CHANGED
|
@@ -15,7 +15,7 @@ CI pipelines, αναφέρει δείκτη αξιοπιστίας και δεί
|
|
|
15
15
|
|
|
16
16
|
[English](README.md) | [简体中文](README.zh.md) | [繁體中文](README.zht.md) | [한국어](README.ko.md) | [Deutsch](README.de.md) | [Español](README.es.md) | [Français](README.fr.md) | [Italiano](README.it.md) | [Dansk](README.da.md) | [日本語](README.ja.md) | [Polski](README.pl.md) | [Русский](README.ru.md) | [Norsk](README.no.md) | [Português (Brasil)](README.br.md) | [ไทย](README.th.md) | [Türkçe](README.tr.md) | [Українська](README.uk.md) | [বাংলা](README.bn.md) | Ελληνικά | [Tiếng Việt](README.vi.md) | [עברית](README.he.md) | [العربية](README.ar.md) | [Bosanski](README.bs.md)
|
|
17
17
|
|
|
18
|
-
> 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-
|
|
18
|
+
> 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-08.
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
21
|
npx mjolnir-qa@latest
|
|
@@ -201,7 +201,6 @@ npx mjolnir-qa@latest --scope changed
|
|
|
201
201
|
|
|
202
202
|
| ID | Κανόνας | Severity |
|
|
203
203
|
| ------------ | ----------------------------- | -------- |
|
|
204
|
-
| QA-TQUAL-001 | Επαλήθευση μόνο με mocks | info |
|
|
205
204
|
| QA-TQUAL-002 | Ταυτολογική assertion | error |
|
|
206
205
|
| QA-TQUAL-009 | Assertion promise χωρίς await | error |
|
|
207
206
|
| QA-TQUAL-011 | Σχολιασμένα τεστ | warning |
|
|
@@ -211,15 +210,12 @@ npx mjolnir-qa@latest --scope changed
|
|
|
211
210
|
<details>
|
|
212
211
|
<summary><strong>Playwright 🎭</strong></summary>
|
|
213
212
|
|
|
214
|
-
| ID | Κανόνας
|
|
215
|
-
| --------- |
|
|
216
|
-
| QA-PW-002 | Assertion locator χωρίς await
|
|
217
|
-
| QA-PW-003 | `page.pause()` / `test.only()` στο commit
|
|
218
|
-
| QA-PW-004 | Εύθραυστοι CSS/XPath selectors
|
|
219
|
-
| QA-PW-
|
|
220
|
-
| QA-PW-114 | Legacy element handles (`page.$`) | info |
|
|
221
|
-
| QA-PW-118 | Αναμονές `networkidle` (flaky by design) | info |
|
|
222
|
-
| QA-PW-123 | Σκληρά URL περιβάλλοντος | warning |
|
|
213
|
+
| ID | Κανόνας | Severity |
|
|
214
|
+
| --------- | ----------------------------------------- | -------- |
|
|
215
|
+
| QA-PW-002 | Assertion locator χωρίς await | error |
|
|
216
|
+
| QA-PW-003 | `page.pause()` / `test.only()` στο commit | error |
|
|
217
|
+
| QA-PW-004 | Εύθραυστοι CSS/XPath selectors | warning |
|
|
218
|
+
| QA-PW-123 | Σκληρά URL περιβάλλοντος | warning |
|
|
223
219
|
|
|
224
220
|
</details>
|
|
225
221
|
|
|
@@ -246,8 +242,6 @@ npx mjolnir-qa@latest --scope changed
|
|
|
246
242
|
| QA-PY-002 | Παραλειμένο τεστ (`skip`, μη αυστηρό `xfail`) | warning |
|
|
247
243
|
| QA-PY-003 | Συνάρτηση τεστ χωρίς assertions | error |
|
|
248
244
|
| QA-PY-005 | `time.sleep()` σε τεστ | warning |
|
|
249
|
-
| QA-PY-006 | Κενό σώμα τεστ (`pass`) | info |
|
|
250
|
-
| QA-PY-010 | Εξάρτηση από τύχη/χρόνο χωρίς freeze | info |
|
|
251
245
|
| QA-PY-012 | Ταυτολογική assertion | error |
|
|
252
246
|
|
|
253
247
|
Συνολικά 20 κανόνες Python (QA-PY-001…012 υγιεινή pytest + QA-PY-101…108 Playwright-Python).
|
|
@@ -264,8 +258,6 @@ npx mjolnir-qa@latest --scope changed
|
|
|
264
258
|
| QA-JV-103 | Μέθοδος τεστ χωρίς assertions | error |
|
|
265
259
|
| QA-JV-105 | Σκληρό sleep Playwright `waitForTimeout()` | warning |
|
|
266
260
|
| QA-JV-106 | Εύθραυστος selector αντί για role locator | warning |
|
|
267
|
-
| QA-JV-108 | Σκληρό URL περιβάλλοντος στο τεστ | info |
|
|
268
|
-
| QA-JV-111 | Μαζικό mock `page.route("**")` | info |
|
|
269
261
|
|
|
270
262
|
</details>
|
|
271
263
|
|
|
@@ -279,8 +271,6 @@ npx mjolnir-qa@latest --scope changed
|
|
|
279
271
|
| QA-CS-103 | Μέθοδος τεστ χωρίς assertions | error |
|
|
280
272
|
| QA-CS-105 | Σκληρό sleep `WaitForTimeoutAsync()` | warning |
|
|
281
273
|
| QA-CS-106 | Εύθραυστος selector αντί για role locator | warning |
|
|
282
|
-
| QA-CS-108 | Σκληρό URL περιβάλλοντος στο τεστ | info |
|
|
283
|
-
| QA-CS-111 | Μαζικό mock `page.RouteAsync("**")` | info |
|
|
284
274
|
|
|
285
275
|
</details>
|
|
286
276
|
|
|
@@ -303,7 +293,6 @@ npx mjolnir-qa@latest --scope changed
|
|
|
303
293
|
_ενεργούς_ κανόνες είναι μετρημένοι· `mjolnir rules --unmeasured`
|
|
304
294
|
παραθέτει τους άμετρητους· η σελίδα `mjolnir explain` κάθε κανόνα
|
|
305
295
|
δηλώνει την κατάστασή του. Δημοσιεύουμε το ποσοστό ακόμα κι όταν είναι
|
|
306
|
-
άσχημο — ο QA-PW-107 αυτοελέγχεται στο 95 % και είναι σε καραντίνα γι'
|
|
307
296
|
αυτό. Να μεγαλώσει αυτός ο αριθμός είναι η συνεχιζόμενη δουλειά του έργου.
|
|
308
297
|
|
|
309
298
|
### Tiers κανόνων και ωριμότητα γλωσσών
|
|
@@ -528,7 +517,7 @@ detached HEAD, μη-git στόχος, διαφορετικό default branch —
|
|
|
528
517
|
{
|
|
529
518
|
"gate": "error",
|
|
530
519
|
"exclude": ["legacy/**"],
|
|
531
|
-
"severityOverrides": { "QA-PW-
|
|
520
|
+
"severityOverrides": { "QA-PW-141": "warning" },
|
|
532
521
|
"ignore": [
|
|
533
522
|
{
|
|
534
523
|
"ruleId": "QA-TEST-004",
|
package/README.he.md
CHANGED
|
@@ -14,7 +14,7 @@ CI, מדווח ציון הגינות ומציג בדיוק היכן האמון
|
|
|
14
14
|
|
|
15
15
|
[English](README.md) | [简体中文](README.zh.md) | [繁體中文](README.zht.md) | [한국어](README.ko.md) | [Deutsch](README.de.md) | [Español](README.es.md) | [Français](README.fr.md) | [Italiano](README.it.md) | [Dansk](README.da.md) | [日本語](README.ja.md) | [Polski](README.pl.md) | [Русский](README.ru.md) | [Norsk](README.no.md) | [Português (Brasil)](README.br.md) | [ไทย](README.th.md) | [Türkçe](README.tr.md) | [Українська](README.uk.md) | [বাংলা](README.bn.md) | [Ελληνικά](README.gr.md) | [Tiếng Việt](README.vi.md) | עברית | [العربية](README.ar.md) | [Bosanski](README.bs.md)
|
|
16
16
|
|
|
17
|
-
> 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-
|
|
17
|
+
> 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-08.
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
20
|
npx mjolnir-qa@latest
|
|
@@ -194,7 +194,6 @@ npx mjolnir-qa@latest --scope changed
|
|
|
194
194
|
|
|
195
195
|
| ID | כלל | Severity |
|
|
196
196
|
| ------------ | ------------------------------ | -------- |
|
|
197
|
-
| QA-TQUAL-001 | אימות ב‑mocks בלבד | info |
|
|
198
197
|
| QA-TQUAL-002 | assertion טאוטולוגי | error |
|
|
199
198
|
| QA-TQUAL-009 | assertion של promise ללא await | error |
|
|
200
199
|
| QA-TQUAL-011 | בדיקות שהועברו להערה | warning |
|
|
@@ -209,9 +208,6 @@ npx mjolnir-qa@latest --scope changed
|
|
|
209
208
|
| QA-PW-002 | assertion של locator ללא await | error |
|
|
210
209
|
| QA-PW-003 | `page.pause()` / `test.only()` עם commit | error |
|
|
211
210
|
| QA-PW-004 | selectors שבירים של CSS/XPath | warning |
|
|
212
|
-
| QA-PW-005 | לוגיקה עסקית בתוך `page.evaluate()` | info |
|
|
213
|
-
| QA-PW-114 | element handles ישנים (`page.$`) | info |
|
|
214
|
-
| QA-PW-118 | המתנות `networkidle` (flaky by design) | info |
|
|
215
211
|
| QA-PW-123 | כתובות סביבה מקודדות מראש | warning |
|
|
216
212
|
|
|
217
213
|
</details>
|
|
@@ -239,8 +235,6 @@ npx mjolnir-qa@latest --scope changed
|
|
|
239
235
|
| QA-PY-002 | בדיקה מדולגת (`skip`, `xfail` לא קפדני) | warning |
|
|
240
236
|
| QA-PY-003 | פונקציית בדיקה ללא assertions | error |
|
|
241
237
|
| QA-PY-005 | `time.sleep()` בבדיקות | warning |
|
|
242
|
-
| QA-PY-006 | גוף בדיקה ריק (`pass`) | info |
|
|
243
|
-
| QA-PY-010 | תלות באקראי/זמן ללא freeze | info |
|
|
244
238
|
| QA-PY-012 | assertion טאוטולוגי | error |
|
|
245
239
|
|
|
246
240
|
סה״כ 20 כללי Python (QA-PY-001…012 היגיינת pytest + QA-PY-101…108 Playwright-Python).
|
|
@@ -257,8 +251,6 @@ npx mjolnir-qa@latest --scope changed
|
|
|
257
251
|
| QA-JV-103 | מתודת בדיקה ללא assertions | error |
|
|
258
252
|
| QA-JV-105 | שינה קבועה של Playwright `waitForTimeout()` | warning |
|
|
259
253
|
| QA-JV-106 | selector שביר במקום role locator | warning |
|
|
260
|
-
| QA-JV-108 | כתובת סביבה מקודדת מראש בבדיקה | info |
|
|
261
|
-
| QA-JV-111 | mock כוללני `page.route("**")` | info |
|
|
262
254
|
|
|
263
255
|
</details>
|
|
264
256
|
|
|
@@ -272,8 +264,6 @@ npx mjolnir-qa@latest --scope changed
|
|
|
272
264
|
| QA-CS-103 | מתודת בדיקה ללא assertions | error |
|
|
273
265
|
| QA-CS-105 | שינה קבועה `WaitForTimeoutAsync()` | warning |
|
|
274
266
|
| QA-CS-106 | selector שביר במקום role locator | warning |
|
|
275
|
-
| QA-CS-108 | כתובת סביבה מקודדת מראש בבדיקה | info |
|
|
276
|
-
| QA-CS-111 | mock כוללני `page.RouteAsync("**")` | info |
|
|
277
267
|
|
|
278
268
|
</details>
|
|
279
269
|
|
|
@@ -294,7 +284,6 @@ npx mjolnir-qa@latest --scope changed
|
|
|
294
284
|
המחבר. התחתית של כל סריקה אומרת כמה מהכללים ש_ירו_ נמדדו;
|
|
295
285
|
`mjolnir rules --unmeasured` מפרט את אלה שלא; עמוד `mjolnir explain`
|
|
296
286
|
של כל כלל מצהיר על מעמדו. אנחנו מפרסמים את השיעור גם כשהוא מכוער —
|
|
297
|
-
QA-PW-107 נבדק ב‑95% ומצוי בהסגר בגין זה. להגדיל את המספר הזה הוא
|
|
298
287
|
העבודה המתמשכת של הפרויקט.
|
|
299
288
|
|
|
300
289
|
### רמות (tiers) של כללים ובשלות לפי שפה
|
|
@@ -503,7 +492,7 @@ Mjölnir הוא zero-config. `mjolnir.config.json` אופציונלי (או
|
|
|
503
492
|
{
|
|
504
493
|
"gate": "error",
|
|
505
494
|
"exclude": ["legacy/**"],
|
|
506
|
-
"severityOverrides": { "QA-PW-
|
|
495
|
+
"severityOverrides": { "QA-PW-141": "warning" },
|
|
507
496
|
"ignore": [
|
|
508
497
|
{
|
|
509
498
|
"ruleId": "QA-TEST-004",
|
package/README.it.md
CHANGED
|
@@ -15,7 +15,7 @@ dove la fiducia si rompe.
|
|
|
15
15
|
|
|
16
16
|
[English](README.md) | [简体中文](README.zh.md) | [繁體中文](README.zht.md) | [한국어](README.ko.md) | [Deutsch](README.de.md) | [Español](README.es.md) | [Français](README.fr.md) | Italiano | [Dansk](README.da.md) | [日本語](README.ja.md) | [Polski](README.pl.md) | [Русский](README.ru.md) | [Norsk](README.no.md) | [Português (Brasil)](README.br.md) | [ไทย](README.th.md) | [Türkçe](README.tr.md) | [Українська](README.uk.md) | [বাংলা](README.bn.md) | [Ελληνικά](README.gr.md) | [Tiếng Việt](README.vi.md) | [עברית](README.he.md) | [العربية](README.ar.md) | [Bosanski](README.bs.md)
|
|
17
17
|
|
|
18
|
-
> 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-
|
|
18
|
+
> 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-08.
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
21
|
npx mjolnir-qa@latest
|
|
@@ -203,7 +203,6 @@ pubblicata — quello è il firewall dei falsi positivi.
|
|
|
203
203
|
|
|
204
204
|
| ID | Regla | Severity |
|
|
205
205
|
| ------------ | --------------------------------- | -------- |
|
|
206
|
-
| QA-TQUAL-001 | Verifica solo con mock | info |
|
|
207
206
|
| QA-TQUAL-002 | Asserzione tautologica | error |
|
|
208
207
|
| QA-TQUAL-009 | Asserzione di promise senza await | error |
|
|
209
208
|
| QA-TQUAL-011 | Test commentati | warning |
|
|
@@ -213,15 +212,12 @@ pubblicata — quello è il firewall dei falsi positivi.
|
|
|
213
212
|
<details>
|
|
214
213
|
<summary><strong>Playwright 🎭</strong></summary>
|
|
215
214
|
|
|
216
|
-
| ID | Regla
|
|
217
|
-
| --------- |
|
|
218
|
-
| QA-PW-002 | Asserzione di locator senza await
|
|
219
|
-
| QA-PW-003 | `page.pause()` / `test.only()` committati
|
|
220
|
-
| QA-PW-004 | Selettori CSS/XPath fragili
|
|
221
|
-
| QA-PW-
|
|
222
|
-
| QA-PW-114 | Element handle legacy (`page.$`) | info |
|
|
223
|
-
| QA-PW-118 | Attese `networkidle` (instabili per progetto) | info |
|
|
224
|
-
| QA-PW-123 | URL di ambiente hardcoded | warning |
|
|
215
|
+
| ID | Regla | Severity |
|
|
216
|
+
| --------- | ----------------------------------------- | -------- |
|
|
217
|
+
| QA-PW-002 | Asserzione di locator senza await | error |
|
|
218
|
+
| QA-PW-003 | `page.pause()` / `test.only()` committati | error |
|
|
219
|
+
| QA-PW-004 | Selettori CSS/XPath fragili | warning |
|
|
220
|
+
| QA-PW-123 | URL di ambiente hardcoded | warning |
|
|
225
221
|
|
|
226
222
|
</details>
|
|
227
223
|
|
|
@@ -243,14 +239,12 @@ pubblicata — quello è il firewall dei falsi positivi.
|
|
|
243
239
|
<details>
|
|
244
240
|
<summary><strong>Python / pytest 🐍</strong></summary>
|
|
245
241
|
|
|
246
|
-
| ID | Regla
|
|
247
|
-
| --------- |
|
|
248
|
-
| QA-PY-002 | Test saltato (`skip`, `xfail` non strict)
|
|
249
|
-
| QA-PY-003 | Funzione di test senza asserzioni
|
|
250
|
-
| QA-PY-005 | `time.sleep()` nei test
|
|
251
|
-
| QA-PY-
|
|
252
|
-
| QA-PY-010 | Dipendenza da casualità/tempo senza freeze | info |
|
|
253
|
-
| QA-PY-012 | Asserzione tautologica | error |
|
|
242
|
+
| ID | Regla | Severity |
|
|
243
|
+
| --------- | ----------------------------------------- | -------- |
|
|
244
|
+
| QA-PY-002 | Test saltato (`skip`, `xfail` non strict) | warning |
|
|
245
|
+
| QA-PY-003 | Funzione di test senza asserzioni | error |
|
|
246
|
+
| QA-PY-005 | `time.sleep()` nei test | warning |
|
|
247
|
+
| QA-PY-012 | Asserzione tautologica | error |
|
|
254
248
|
|
|
255
249
|
20 regole Python in totale (QA-PY-001…012 igiene pytest + QA-PY-101…108 Playwright-Python).
|
|
256
250
|
|
|
@@ -266,8 +260,6 @@ pubblicata — quello è il firewall dei falsi positivi.
|
|
|
266
260
|
| QA-JV-103 | Metodo di test senza asserzioni | error |
|
|
267
261
|
| QA-JV-105 | Sleep hardcoded Playwright `waitForTimeout()` | warning |
|
|
268
262
|
| QA-JV-106 | Selettore fragile invece di un role locator | warning |
|
|
269
|
-
| QA-JV-108 | URL di ambiente hardcoded nel test | info |
|
|
270
|
-
| QA-JV-111 | Mock blanket `page.route("**")` | info |
|
|
271
263
|
|
|
272
264
|
</details>
|
|
273
265
|
|
|
@@ -281,8 +273,6 @@ pubblicata — quello è il firewall dei falsi positivi.
|
|
|
281
273
|
| QA-CS-103 | Metodo di test senza asserzioni | error |
|
|
282
274
|
| QA-CS-105 | Sleep hardcoded `WaitForTimeoutAsync()` | warning |
|
|
283
275
|
| QA-CS-106 | Selettore fragile invece di un role locator | warning |
|
|
284
|
-
| QA-CS-108 | URL di ambiente hardcoded nel test | info |
|
|
285
|
-
| QA-CS-111 | Mock blanket `page.RouteAsync("**")` | info |
|
|
286
276
|
|
|
287
277
|
</details>
|
|
288
278
|
|
|
@@ -304,7 +294,6 @@ codice OSS** (≥ 10 riscontri classificati a mano ciascuna; vedi
|
|
|
304
294
|
dell'autore. Ogni footer di scansione dice quante delle regole
|
|
305
295
|
_scattate_ sono misurate; `mjolnir rules --unmeasured` elenca quelle
|
|
306
296
|
che non lo sono; la pagina `mjolnir explain` di ogni regola dichiara il
|
|
307
|
-
suo stato. Pubblichiamo il tasso anche quando è brutto — QA-PW-107 si
|
|
308
297
|
audita al 95 % ed è in quarantena per questo. Far crescere quel numero è il
|
|
309
298
|
lavoro continuo del progetto.
|
|
310
299
|
|
|
@@ -531,7 +520,7 @@ perimetro — non cambia mai la semantica di rilevamento.
|
|
|
531
520
|
{
|
|
532
521
|
"gate": "error",
|
|
533
522
|
"exclude": ["legacy/**"],
|
|
534
|
-
"severityOverrides": { "QA-PW-
|
|
523
|
+
"severityOverrides": { "QA-PW-141": "warning" },
|
|
535
524
|
"ignore": [
|
|
536
525
|
{
|
|
537
526
|
"ruleId": "QA-TEST-004",
|
package/README.ja.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
[English](README.md) | [简体中文](README.zh.md) | [繁體中文](README.zht.md) | [한국어](README.ko.md) | [Deutsch](README.de.md) | [Español](README.es.md) | [Français](README.fr.md) | [Italiano](README.it.md) | [Dansk](README.da.md) | 日本語 | [Polski](README.pl.md) | [Русский](README.ru.md) | [Norsk](README.no.md) | [Português (Brasil)](README.br.md) | [ไทย](README.th.md) | [Türkçe](README.tr.md) | [Українська](README.uk.md) | [বাংলা](README.bn.md) | [Ελληνικά](README.gr.md) | [Tiếng Việt](README.vi.md) | [עברית](README.he.md) | [العربية](README.ar.md) | [Bosanski](README.bs.md)
|
|
17
17
|
|
|
18
|
-
> 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-
|
|
18
|
+
> 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-08.
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
21
|
npx mjolnir-qa@latest
|
|
@@ -200,7 +200,6 @@ Linux で動作します。
|
|
|
200
200
|
|
|
201
201
|
| ID | ルール | Severity |
|
|
202
202
|
| ------------ | --------------------------------------- | -------- |
|
|
203
|
-
| QA-TQUAL-001 | モックのみの検証 | info |
|
|
204
203
|
| QA-TQUAL-002 | トートロジカルなアサーション | error |
|
|
205
204
|
| QA-TQUAL-009 | await されていない promise アサーション | error |
|
|
206
205
|
| QA-TQUAL-011 | コメントアウトされたテスト | warning |
|
|
@@ -215,9 +214,6 @@ Linux で動作します。
|
|
|
215
214
|
| QA-PW-002 | await されていないロケータアサーション | error |
|
|
216
215
|
| QA-PW-003 | コミットされた `page.pause()` / `test.only()` | error |
|
|
217
216
|
| QA-PW-004 | 脆弱な CSS/XPath セレクタ | warning |
|
|
218
|
-
| QA-PW-005 | `page.evaluate()` 内のビジネスロジック | info |
|
|
219
|
-
| QA-PW-114 | レガシーな要素ハンドル(`page.$`) | info |
|
|
220
|
-
| QA-PW-118 | `networkidle` 待ち(設計上 flaky) | info |
|
|
221
217
|
| QA-PW-123 | ハードコードされた環境 URL | warning |
|
|
222
218
|
|
|
223
219
|
</details>
|
|
@@ -245,8 +241,6 @@ Linux で動作します。
|
|
|
245
241
|
| QA-PY-002 | スキップされたテスト(`skip`、非厳格な `xfail`) | warning |
|
|
246
242
|
| QA-PY-003 | アサーションのないテスト関数 | error |
|
|
247
243
|
| QA-PY-005 | テスト内の `time.sleep()` | warning |
|
|
248
|
-
| QA-PY-006 | 空のテスト本体(`pass`) | info |
|
|
249
|
-
| QA-PY-010 | freeze なしのランダム/時刻依存 | info |
|
|
250
244
|
| QA-PY-012 | トートロジカルなアサーション | error |
|
|
251
245
|
|
|
252
246
|
Python ルールは合計 20 本(QA-PY-001…012 pytest 衛生 + QA-PY-101…108 Playwright-Python)。
|
|
@@ -263,8 +257,6 @@ Python ルールは合計 20 本(QA-PY-001…012 pytest 衛生 + QA-PY-101…1
|
|
|
263
257
|
| QA-JV-103 | アサーションのないテストメソッド | error |
|
|
264
258
|
| QA-JV-105 | Playwright のハードな sleep `waitForTimeout()` | warning |
|
|
265
259
|
| QA-JV-106 | role ロケータの代わりの脆弱なセレクタ | warning |
|
|
266
|
-
| QA-JV-108 | テストにハードコードされた環境 URL | info |
|
|
267
|
-
| QA-JV-111 | 全域モック `page.route("**")` | info |
|
|
268
260
|
|
|
269
261
|
</details>
|
|
270
262
|
|
|
@@ -278,8 +270,6 @@ Python ルールは合計 20 本(QA-PY-001…012 pytest 衛生 + QA-PY-101…1
|
|
|
278
270
|
| QA-CS-103 | アサーションのないテストメソッド | error |
|
|
279
271
|
| QA-CS-105 | ハードな sleep `WaitForTimeoutAsync()` | warning |
|
|
280
272
|
| QA-CS-106 | role ロケータの代わりの脆弱なセレクタ | warning |
|
|
281
|
-
| QA-CS-108 | テストにハードコードされた環境 URL | info |
|
|
282
|
-
| QA-CS-111 | 全域モック `page.RouteAsync("**")` | info |
|
|
283
273
|
|
|
284
274
|
</details>
|
|
285
275
|
|
|
@@ -300,7 +290,6 @@ false-positive 率を備えています**(各ルールにつき手作業で分
|
|
|
300
290
|
は作者の推定で出荷されます。すべてのスキャンのフッターは、_発火した_
|
|
301
291
|
ルールのうちいくつが測定済みかを教えてくれます。`mjolnir rules --unmeasured`
|
|
302
292
|
は未測定のものを列挙します。各ルールの `mjolnir explain` ページはその
|
|
303
|
-
状態を明言します。率は醜くても公開します——QA-PW-107 は 95% で監査され、
|
|
304
293
|
それゆえ隔離されています。この数字を増やすことが、プロジェクトの継続的
|
|
305
294
|
な仕事です。
|
|
306
295
|
|
|
@@ -520,7 +509,7 @@ Mjölnir はゼロ設定です。リポジトリルートの任意の `mjolnir.c
|
|
|
520
509
|
{
|
|
521
510
|
"gate": "error",
|
|
522
511
|
"exclude": ["legacy/**"],
|
|
523
|
-
"severityOverrides": { "QA-PW-
|
|
512
|
+
"severityOverrides": { "QA-PW-141": "warning" },
|
|
524
513
|
"ignore": [
|
|
525
514
|
{
|
|
526
515
|
"ruleId": "QA-TEST-004",
|
package/README.ko.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
[English](README.md) | [简体中文](README.zh.md) | [繁體中文](README.zht.md) | 한국어 | [Deutsch](README.de.md) | [Español](README.es.md) | [Français](README.fr.md) | [Italiano](README.it.md) | [Dansk](README.da.md) | [日本語](README.ja.md) | [Polski](README.pl.md) | [Русский](README.ru.md) | [Norsk](README.no.md) | [Português (Brasil)](README.br.md) | [ไทย](README.th.md) | [Türkçe](README.tr.md) | [Українська](README.uk.md) | [বাংলা](README.bn.md) | [Ελληνικά](README.gr.md) | [Tiếng Việt](README.vi.md) | [עברית](README.he.md) | [العربية](README.ar.md) | [Bosanski](README.bs.md)
|
|
17
17
|
|
|
18
|
-
> 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-
|
|
18
|
+
> 🤖 Machine-assisted translation. The [English README](README.md) is canonical. Last synced: 2026-09-08.
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
21
|
npx mjolnir-qa@latest
|
|
@@ -198,7 +198,6 @@ npx mjolnir-qa@latest --scope changed
|
|
|
198
198
|
|
|
199
199
|
| ID | 규칙 | Severity |
|
|
200
200
|
| ------------ | ----------------------------- | -------- |
|
|
201
|
-
| QA-TQUAL-001 | 모크(mock)만으로 검증 | info |
|
|
202
201
|
| QA-TQUAL-002 | 동어반복적 어설션 | error |
|
|
203
202
|
| QA-TQUAL-009 | await되지 않은 promise 어설션 | error |
|
|
204
203
|
| QA-TQUAL-011 | 주석 처리된 테스트 | warning |
|
|
@@ -213,9 +212,6 @@ npx mjolnir-qa@latest --scope changed
|
|
|
213
212
|
| QA-PW-002 | await되지 않은 로케이터 어설션 | error |
|
|
214
213
|
| QA-PW-003 | 커밋된 `page.pause()` / `test.only()` | error |
|
|
215
214
|
| QA-PW-004 | 취약한 CSS/XPath 선택자 | warning |
|
|
216
|
-
| QA-PW-005 | `page.evaluate()` 안의 비즈니스 로직 | info |
|
|
217
|
-
| QA-PW-114 | 레거시 요소 핸들 (`page.$`) | info |
|
|
218
|
-
| QA-PW-118 | `networkidle` 대기 (설계상 flaky) | info |
|
|
219
215
|
| QA-PW-123 | 하드코딩된 환경 URL | warning |
|
|
220
216
|
|
|
221
217
|
</details>
|
|
@@ -243,8 +239,6 @@ npx mjolnir-qa@latest --scope changed
|
|
|
243
239
|
| QA-PY-002 | 건너뛴 테스트 (`skip`, 비엄격 `xfail`) | warning |
|
|
244
240
|
| QA-PY-003 | 어설션이 없는 테스트 함수 | error |
|
|
245
241
|
| QA-PY-005 | 테스트 안의 `time.sleep()` | warning |
|
|
246
|
-
| QA-PY-006 | 빈 테스트 본문 (`pass`) | info |
|
|
247
|
-
| QA-PY-010 | freeze 없는 무작위성/시간 의존 | info |
|
|
248
242
|
| QA-PY-012 | 동어반복적 어설션 | error |
|
|
249
243
|
|
|
250
244
|
총 20개의 Python 규칙 (QA-PY-001…012 pytest 위생 + QA-PY-101…108 Playwright-Python).
|
|
@@ -261,8 +255,6 @@ npx mjolnir-qa@latest --scope changed
|
|
|
261
255
|
| QA-JV-103 | 어설션이 없는 테스트 메서드 | error |
|
|
262
256
|
| QA-JV-105 | Playwright 하드 sleep `waitForTimeout()` | warning |
|
|
263
257
|
| QA-JV-106 | role 로케이터 대신 취약한 선택자 | warning |
|
|
264
|
-
| QA-JV-108 | 테스트에 하드코딩된 환경 URL | info |
|
|
265
|
-
| QA-JV-111 | 전면 모크 `page.route("**")` | info |
|
|
266
258
|
|
|
267
259
|
</details>
|
|
268
260
|
|
|
@@ -276,8 +268,6 @@ npx mjolnir-qa@latest --scope changed
|
|
|
276
268
|
| QA-CS-103 | 어설션이 없는 테스트 메서드 | error |
|
|
277
269
|
| QA-CS-105 | 하드 sleep `WaitForTimeoutAsync()` | warning |
|
|
278
270
|
| QA-CS-106 | role 로케이터 대신 취약한 선택자 | warning |
|
|
279
|
-
| QA-CS-108 | 테스트에 하드코딩된 환경 URL | info |
|
|
280
|
-
| QA-CS-111 | 전면 모크 `page.RouteAsync("**")` | info |
|
|
281
271
|
|
|
282
272
|
</details>
|
|
283
273
|
|
|
@@ -298,7 +288,6 @@ npx mjolnir-qa@latest --scope changed
|
|
|
298
288
|
출시됩니다. 모든 스캔의 바닥글은 _발화한_ 규칙 중 몇 개가 측정되었는지
|
|
299
289
|
말해줍니다; `mjolnir rules --unmeasured`는 측정되지 않은 것들을 나열합니다;
|
|
300
290
|
각 규칙의 `mjolnir explain` 페이지는 그 상태를 명시합니다. 수치가 흉해도
|
|
301
|
-
우리는 비율을 공개합니다 — QA-PW-107은 95%로 감사되었고 그래서 격리
|
|
302
291
|
계층에 있습니다. 그 숫자를 늘려가는 것이 프로젝트의 지속적인 작업입니다.
|
|
303
292
|
|
|
304
293
|
### 규칙 계층과 언어 성숙도
|
|
@@ -515,7 +504,7 @@ Mjölnir는 제로 설정입니다. 리포지터리 루트의 선택적 `mjolnir
|
|
|
515
504
|
{
|
|
516
505
|
"gate": "error",
|
|
517
506
|
"exclude": ["legacy/**"],
|
|
518
|
-
"severityOverrides": { "QA-PW-
|
|
507
|
+
"severityOverrides": { "QA-PW-141": "warning" },
|
|
519
508
|
"ignore": [
|
|
520
509
|
{
|
|
521
510
|
"ruleId": "QA-TEST-004",
|