Finalizing Tests Against a Live Environment
Finalizing runs your converted tests against a live Blue Yonder WMS environment and records which ones genuinely pass. It is the sign-off that validation deliberately defers. A test that passes here has been proven against real data on a real system, not only against a sandbox.
Finalizing works on a batch rather than a single test, and it remembers what it has already finalized, so a large suite can be worked through across several sessions or shared between teammates.
Finalizing connects to a Blue Yonder WMS through MOCA, so it is available only for Blue Yonder testing and only when Blue Yonder support is enabled on the Cycle MCP Server. The earlier stages of this flow are not restricted in this way.
Prerequisites
Finalizing needs a live environment, and the connection to it is configured on the server rather than passed in the request:
- A Cycle project and a directory containing the converted tests.
- A reachable live Blue Yonder WMS environment.
- The live connection variables set on the environment of the process running the Cycle MCP Server:
MOCA_HOST,MOCA_USER, andMOCA_PASSWORD. Restart the MCP server after setting them so it picks them up. - Valid Cycle authentication, either a signed-in session or the
CYCLE_CLI_CLIENT_IDandCYCLE_CLI_CLIENT_SECRETcredentials.
The live connection is read from the MCP server process's environment and never from the conversation. This keeps credentials out of the request, but it also means your agent cannot set them for you. Configure them yourself, then restart the server.
Finalizing a batch
Ask the agent to finalize the tests in a directory.
You say:
Finalize the tests under
Test Cases/InventoryinC:\CycleProjects\WarehouseSuiteagainst the live environment.
The agent:
- Checks that the live environment is ready before judging any test.
- Finds the Feature Files under the directory, including subdirectories.
- Runs them one at a time against the live environment.
- Reports each test as finalized or not finalized, with the failure detail and classification for the ones that did not pass.
- Summarizes coverage across the batch.
Like validating, finalizing is driven by a plain-language request rather than a slash command.
The agent calls formulation_moca_finalize-tests-live, the Cycle MCP tool that performs it.
Knowing the name is useful here in particular, because it lets you confirm from the agent's output that the live finalize actually ran rather than an ordinary test execution.
You can also pass the Test-Specs folder alongside the request.
When you do, the coverage summary additionally reports which specifications have no converted test at all, which is the clearest view of where the suite still has holes.
Reading the outcome
| Outcome | What it means | What to do |
|---|---|---|
| Finalized | The test passed against the live environment. | Nothing. This is the sign-off. |
| Not finalized | The test ran and failed. The report includes the failing steps and a failure classification. | Refine the test where the classification points at its content, following the same guidance as validation. |
| Environment not ready | The live environment could not be reached or the setup is incomplete. No test was judged. | Follow the remediation in the result. It names the variables to set and how to authenticate. |
The environment check runs before any test is judged, and that ordering is the point. An unreachable environment is reported as an environment problem rather than as a suite of failing tests, so you never refine correct tests in response to a connection issue.
Resuming a batch
Finalization state is stored in the Cycle project, in .cycle/formulation-finalize.json.
Commit that file with the project, in the same way you commit Discovery state.
Because the state persists:
- A test already finalized is skipped on the next run rather than being run again, so a long batch resumes where it stopped.
- A teammate who pulls the project picks up from the same point instead of starting over.
- Editing a Feature File makes it eligible to run again, because its content has changed.
To re-run everything regardless of what has already been finalized, tell the agent to force the run. Use this when the environment or the data behind it has changed, rather than as a routine step, because it re-runs the whole batch against the live system.
Committing to the suite
A finalized test has passed against the live environment, so it is ready to become part of your regression suite. It is an ordinary Cycle test from this point on, with a record of the specification it covers travelling with it in source control.
Commit the finalized tests, then put them to work. Run them from the Cycle Testing Kit, collect them into a playlist, or refine them in your editor using the CycleScript reference.
What remains is what the run told you: the tests that did not finalize, the stubs still carrying open questions, and any specifications with no test yet.