Skip to main content

get_test_job

Auto-generated from the Python tool registry. Do not hand-edit outside <!-- examples:start --><!-- examples:end --> blocks — the generator (tools/generate_docs_reference.py) will overwrite them.

Group: testing  ·  Module: services.tools.run_tests

Description​

Polls an async Unity test job by job_id.

Parameters​

NameTypeRequiredDescription
job_idstryesJob id returned by run_tests
include_failed_testsbool—Include details for failed/skipped tests only (default: false)
include_detailsbool—Include details for all tests (default: false)
wait_timeoutint | None—If set, wait up to this many seconds for tests to complete before returning. Reduces polling frequency and avoids client-side loop detection. Recommended: 30-60 seconds. Returns immediately if tests complete sooner.

Returns​

A dict containing the Unity response. The exact shape depends on the action.

Examples​

Wait for a run to finish​

Wait for the test job I just started and show the failures.

{
"job_id": "<job_id from run_tests>",
"wait_timeout": 60,
"include_failed_tests": true
}

With wait_timeout, the server polls Unity every 2 seconds and returns as soon as status is succeeded, failed or cancelled — or after 60 s with the current progress, in which case call it again. This avoids a tight client-side polling loop.

Check progress without waiting​

How far along is the test run?

{
"job_id": "<job_id from run_tests>"
}

Returns straight away. data.progress has completed / total, the test currently running, and failures_so_far. data.result (summary, plus a results list when include_details or include_failed_tests is set) is only filled when the job succeeded: a run with failing tests ends as failed with result: null, so read the failures from data.progress.failures_so_far (at most 25; failures_capped turns true once 25 are recorded, so there may be more). data.error stays null for failing tests; it is only set when the job itself did not finish normally (did not start in time, threw, was canceled, was cleared with clear_stuck, or was orphaned by a domain reload).

If Unity is in the background and the job has not moved for 3 s, both this call and the wait_timeout form start a focus nudge that brings the Unity window to the front for a few seconds and then switches back. This form runs it in the background, so the response is not delayed.

Get details for every test​

Show me the result of every test, not just the failures.

{
"job_id": "<job_id from run_tests>",
"include_details": true
}

include_details returns all tests; include_failed_tests returns only failed and skipped ones, which keeps the response small on large suites.