Forum Discussion
Hello,
You're right, there is no support in REST API to update individual test step results.
There are two ways to update them currently:
- manually through the interface
- automatically by sending a cucumber json result file. This is the only format we support that can update individual test step results.
You can push such results to an external test run.
Create an external test run from the test run creation page, then open it
In the three dots menu, there is a "Push results" entry. Select it
An information box will be displayed with information about how to push results in Cucumber JSON format (you have to select this format in the dropdown, as Junit XML is selected by default)
You'll have to configure your test suite to generate this Cucumber Json file, and then try pushing it with curl as instructed. Once done, you should see the execution results with each step result correctly set.
Let us know if that worked.
Hi Thanks for your reply,
Is there some instructions to configure my c# and mstest solution to generate results in cucumber messages format? but as i know external test results are not linked with scenarios in cucumber studio and this is not a solution for me... 😕
- cbliard4 years agoSmartBear Alumni (Retired)
Yeah you're right. When using external test runs, results are not tied to the scenarios you wrote. Sorry, I missed that it was important in your initial request.
To get the link between both, you need to create a test run from your scenarios, and then export those tests to code skeleton using hiptest-publisher. Upon doing that, you'll see that it generates tests in your language. Each test contains a uid that identify them on the CucumberStudio side.
After executing your tests, you'll have a result file that contains the test results and the uid. Pushing it back to CucumberStudio will update the results in the test run.
To be able to generate a cucumber json result file, you should use a gherkin based framework like SpecFlow. Is it an option in your case?
If exporting to C# directly, when a test fails, it's hard to know at which step it was failing because this information is not present most of the time: we only have the test name, and the steps are test implementation details. It looks like you are able to get this information though as you wanted to use the API to update tests at the step level. Can you describe how you have this information?
- remixtedi4 years agoOccasional Contributor
hiptest-publisher is not an option for us because we have many test scenarios and complex solution, so generated files from cucumber studio (like specflow files) are not acceptable. we are using Specflow and we can detect every step and its status on the way or in the end of execution, so it there are some tools to generate automatically some result file in cucumber json format it would be great.
- cbliard4 years agoSmartBear Alumni (Retired)
I'm not very fluent in C# world. It looks like SpecNuts is an option: https://github.com/DonutReport/SpecNuts
Have you tried it already?
- remixtedi4 years agoOccasional Contributor
Can you add support to add/update statuses of test steps? this will be great feature and we will move on your platform.
- cbliard4 years agoSmartBear Alumni (Retired)
remixtedi wrote:
Can you add support to add/update statuses of test steps? this will be great feature and we will move on your platform.
So we have just added this ability. You can find the relevant documentation on our REST API documentation
To explain it briefly: along with the status, status-author and description attributes, you can also add a step-statuses attribute. It must be an array of string. Each string is a status. Possible values are ‘passed’, 'failed’, 'wip’, 'retest’, 'blocked’, 'skipped’, 'undefined’.It then looks like this:RequestPOST https://studio.cucumber.io/api/projects/8194/test_runs/274529/test_snapshots/17761339/test_results HTTP/1.1Content-Type: application/json; charset=utf-8Accept: application/vnd.api+json; version=1access-token: xxxxxclient: xxxxxuid: christophe.bliard@hiptest.net{"data": {"type": "test-results","attributes": {"status": "passed","status-author": "Chris","description": "Allright!","step-statuses": ["passed", "undefined", "passed"]}}}Response{"data": {"type": "test-results","id": "218522447","attributes": {"created-at": "2021-03-04T13:16:18.426Z","updated-at": "2021-03-04T13:16:18.426Z","last-author": "christophe.bliard@smartbear.com","status": "passed","description": "Allright!","status-author": "Chris","step-statuses": ["passed","undefined","passed"],"test-snapshot-id": 17761339,"execution-environment-id": 178455},"links": {"self": "/test-results/218522447"},"relationships": {"test-snapshot": {"data": {"type": "test-snapshots","id": "17761339"}},"build": {"data": {"type": "builds","id": "1126746"}},"execution-environment": {}}},"included": [--truncated--]}And a screenshotHope that helps 🙂
Related Content
- 2 years ago
- 6 months ago
- 10 years ago
Recent Discussions
- 13 days ago
- 2 months ago
- 6 months ago
- 6 months ago