JSON report#
A JSON report of a test session can be generated after the session has completed:
$ canary run ./basic
...
$ canary report json create
$ cat canary.json
{
"260b4b0773c4c51715b333cae63de326ae355fcfcbde5111f27aa838eda108e55e7de20da30a773b9c73ccf50e1f748055252e48cbcd934bbbe61e4e50f12915": {
"status": {
"state": "COMPLETE",
"category": "PASS",
"status": "SUCCESS",
"reason": "",
"code": 0
},
"spec": {
"file_root": "/home/docs/checkouts/readthedocs.org/user_builds/canary-wm/checkouts/release-26.4.16/src/canary/examples/basic",
"file_path": "first/first.pyt",
"family": "first",
"stdout": "canary-out.txt",
"stderr": null,
"dependencies": [],
"dep_done_criteria": [],
"parameters": {},
"attributes": {},
"keywords": [
"basic"
],
"assets": [],
"baseline": [],
"artifacts": [],
"exclusive": false,
"timeout": 300.0,
"xstatus": 0,
"preload": null,
"modules": [],
"rcfiles": [],
"owners": [],
"environment": {},
"environment_modifications": [],
"meta_parameters": {
"runtime": 300.0
},
"command": [
"/home/docs/checkouts/readthedocs.org/user_builds/canary-wm/envs/release-26.4.16/bin/python",
"first.pyt"
],
"id": "260b4b0773c4c51715b333cae63de326ae355fcfcbde5111f27aa838eda108e55e7de20da30a773b9c73ccf50e1f748055252e48cbcd934bbbe61e4e50f12915",
"mask": {
"value": false,
"reason": null
},
"name": "first"
},
"timekeeper": {
"submitted": 1776785688.8487184,
"started": 1776785688.8516626,
"finished": 1776785689.059613
},
"measurements": {},
"workspace": {
"root": "/home/docs/checkouts/readthedocs.org/user_builds/canary-wm/checkouts/release-26.4.16/src/canary/examples/.canary/sessions/2026-04-21T15-34-48.590864",
"path": "first/first",
"session": "2026-04-21T15-34-48.590864"
},
"variables": {
"PYTHONPATH": "/home/docs/checkouts/readthedocs.org/user_builds/canary-wm/checkouts/release-26.4.16/src/canary/examples/.canary/sessions/2026-04-21T15-34-48.590864/first/first:",
"PATH": "/home/docs/checkouts/readthedocs.org/user_builds/canary-wm/checkouts/release-26.4.16/src/canary/examples/.canary/sessions/2026-04-21T15-34-48.590864/first/first:/home/docs/checkouts/readthedocs.org/user_builds/canary-wm/envs/release-26.4.16/bin:/home/docs/.asdf/shims:/home/docs/.asdf/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
},
"resources": {},
"stdout": "canary-out.txt",
"stderr": null,
"runtime": 0.20795035362243652,
"dependencies": [],
"rparameters": {
"cpus": 1,
"gpus": 0,
"nodes": 1
}
},
"57a97754bdbb26e1015a497926998c164444e86a9b03e2624d1f906cb1efe077585f29b26b3e09a5786fd29605551e52fba7d5c3e020e63efa9400e104b72c34": {
"status": {
"state": "COMPLETE",
"category": "PASS",
"status": "SUCCESS",
"reason": "",
"code": 0
},
"spec": {
"file_root": "/home/docs/checkouts/readthedocs.org/user_builds/canary-wm/checkouts/release-26.4.16/src/canary/examples/basic",
"file_path": "second/second.pyt",
"family": "second",
"stdout": "canary-out.txt",
"stderr": null,
"dependencies": [],
"dep_done_criteria": [],
"parameters": {},
"attributes": {},
"keywords": [
"basic",
"second"
],
"assets": [
{
"src": "/home/docs/checkouts/readthedocs.org/user_builds/canary-wm/checkouts/release-26.4.16/src/canary/examples/basic/second/add.py",
"dst": "add.py",
"action": "link"
}
],
"baseline": [],
"artifacts": [],
"exclusive": false,
"timeout": 300.0,
"xstatus": 0,
"preload": null,
"modules": [],
"rcfiles": [],
"owners": [],
"environment": {},
"environment_modifications": [],
"meta_parameters": {
"runtime": 300.0
},
"command": [
"/home/docs/checkouts/readthedocs.org/user_builds/canary-wm/envs/release-26.4.16/bin/python",
"second.pyt"
],
"id": "57a97754bdbb26e1015a497926998c164444e86a9b03e2624d1f906cb1efe077585f29b26b3e09a5786fd29605551e52fba7d5c3e020e63efa9400e104b72c34",
"mask": {
"value": false,
"reason": null
},
"name": "second"
},
"timekeeper": {
"submitted": 1776785688.8503196,
"started": 1776785688.8533857,
"finished": 1776785689.160089
},
"measurements": {},
"workspace": {
"root": "/home/docs/checkouts/readthedocs.org/user_builds/canary-wm/checkouts/release-26.4.16/src/canary/examples/.canary/sessions/2026-04-21T15-34-48.590864",
"path": "second/second",
"session": "2026-04-21T15-34-48.590864"
},
"variables": {
"PYTHONPATH": "/home/docs/checkouts/readthedocs.org/user_builds/canary-wm/checkouts/release-26.4.16/src/canary/examples/.canary/sessions/2026-04-21T15-34-48.590864/second/second:",
"PATH": "/home/docs/checkouts/readthedocs.org/user_builds/canary-wm/checkouts/release-26.4.16/src/canary/examples/.canary/sessions/2026-04-21T15-34-48.590864/second/second:/home/docs/checkouts/readthedocs.org/user_builds/canary-wm/envs/release-26.4.16/bin:/home/docs/.asdf/shims:/home/docs/.asdf/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
},
"resources": {},
"stdout": "canary-out.txt",
"stderr": null,
"runtime": 0.3067033290863037,
"dependencies": [],
"rparameters": {
"cpus": 1,
"gpus": 0,
"nodes": 1
}
}
}