io.github.CloudCorpRecords/testdelta
Base-vs-head test result differ: named tests added, removed, and changed, never raw counts.
Que pouvez-vous faire avec io.github.CloudCorpRecords/testdelta ?
- Regressions: tests that were
passorskipin base and arefailin head. - Fixes: tests that were
failin base and arepassin head. - Added: tests that exist only in head, with their head status.
- Removed: tests that exist only in base, with their base status.
- Still-failing: tests that are
failin both sets. - Unchanged: tests present in both sets with the same status, other than fail in both.
- Other changes: tests present in both sets whose status changed in a way that is neither a regression nor a fix, for example
passtoskip. - One
highfinding per regression (ruleREGRESSION, evidence such asbase=pass head=fail).
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
@reneturcios/testdeltaclaude mcp add testdelta -- npx -y @reneturcios/testdelta@0.1.0 mcp
{
"mcpServers": {
"testdelta": {
"command": "npx",
"args": [
"-y",
"@reneturcios/testdelta@0.1.0",
"mcp"
]
}
}
}
ghcr.io/cloudcorprecords/testdelta:0.1.0claude mcp add testdelta -- docker run -i --rm ghcr.io/cloudcorprecords/testdelta:0.1.0 mcp
{
"mcpServers": {
"testdelta": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/cloudcorprecords/testdelta:0.1.0",
"mcp"
]
}
}
}
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
testdelta
Diff two named test result sets and report exactly which tests regressed, which were fixed, which were added, and which were removed. Never raw counts without names: every category in the human report lists the test names in it.
What it does
testdelta compares a base result set against a head result set. Each set maps a test name to one of three statuses: pass, fail, or skip. From the two sets it computes:
- Regressions: tests that were
passorskipin base and arefailin head. - Fixes: tests that were
failin base and arepassin head. - Added: tests that exist only in head, with their head status.
- Removed: tests that exist only in base, with their base status.
- Still-failing: tests that are
failin both sets. - Unchanged: tests present in both sets with the same status, other than fail in both.
- Other changes: tests present in both sets whose status changed in a way that is neither a regression nor a fix, for example
passtoskip.
Name lists are sorted alphabetically within each category, and the output is deterministic: no timestamps and no random ordering.
Findings highlight the categories a human should look at first:
- One
highfinding per regression (ruleREGRESSION, evidence such asbase=pass head=fail). - One
infofinding per fix (ruleFIXED). - One
mediumfinding per removed test that was passing (ruleREMOVED-PASSING). - One
lowfinding per added test that is failing (ruleADDED-FAILING).
Input formats
Directory with base.json and head.json
Point testdelta at a directory containing two files:
base.json:
{
"test-login": "pass",
"test-checkout": "pass",
"test-search": "fail"
}
head.json:
{
"test-login": "fail",
"test-checkout": "pass",
"test-search": "pass"
}
In this example test-login is a regression and test-search is a fix.
Single file with base and head objects
A single JSON file can carry both sets:
{
"base": {
"test-login": "pass",
"test-search": "fail"
},
"head": {
"test-login": "fail",
"test-search": "pass"
}
}
Missing files, missing base or head objects, malformed JSON, and status values other than pass, fail, or skip are errors. The CLI reports the error and exits with code 2.
Install
npx @reneturcios/testdelta diff ./results
Or install it globally:
npm install -g @reneturcios/testdelta
CLI usage
# Human readable report (default target is the current directory)
testdelta diff [path]
# Machine readable JSON report
testdelta diff [path] --json
# Run as an MCP server over stdio
testdelta mcp
# Print the version
testdelta --version
Exit codes:
0: the verdict isNO-REGRESSION.1: the verdict isREGRESSED.2: usage error, including missing or invalid input.141: the reader closed the output pipe early (the shell-visible equivalent of SIGPIPE).
In the human report, each category lists test names, capped at 50 names per category. When a category has more, the list ends with an explicit and N more line instead of truncating silently. The JSON report always carries the full findings list.
MCP tool
The MCP server exposes one tool:
diff_test_results
- Input:
path, the target directory or single result file. - Output: the full JSON report, with the verdict, the counts for every category, the findings, and a summary that names the counts and the first regression names.
Verdict rules
REGRESSED: at least one regression exists, meaning a test that waspassorskipin base isfailin head.NO-REGRESSION: no regressions. Added failing tests, removed tests, and tests that were already failing in base do not change the verdict on their own; they are reported as findings and counts so a human can decide.
Limits
- testdelta works on result files. It does not run tests, and it does not produce the
pass,fail, orskipvalues itself; a test runner or CI job has to write the result sets first. - Test name matching is exact string equality. A renamed test appears as one removed test and one added test, not as a change.
- Only the three statuses
pass,fail, andskipare understood. Map any other runner outcome onto one of them before diffing.
Questions fréquentes
Qu'est-ce que io.github.CloudCorpRecords/testdelta ?
Base-vs-head test result differ: named tests added, removed, and changed, never raw counts.
Comment installer io.github.CloudCorpRecords/testdelta ?
Il s'exécute sur votre machine. Dans Claude Code : claude mcp add testdelta -- npx -y @reneturcios/testdelta@0.1.0 mcp. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour io.github.CloudCorpRecords/testdelta ?
Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.
io.github.CloudCorpRecords/testdelta est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient io.github.CloudCorpRecords/testdelta ?
Il est publié par CloudCorpRecords. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.