Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

need help to get the run_id based on the test_case_id #485

Open
subhedarnikhil opened this issue Feb 13, 2024 · 0 comments
Open

need help to get the run_id based on the test_case_id #485

subhedarnikhil opened this issue Feb 13, 2024 · 0 comments

Comments

@subhedarnikhil
Copy link

subhedarnikhil commented Feb 13, 2024

Hi All,
i have use case where i need to select Mark outcome and update the test result automatically for that purpose i need run_id of a test_case how to get that any idea? For time being i am using hard coded run_id
here is the code for the same
from azure.devops.connection import Connection
from msrest.authentication import BasicAuthentication
from azure.devops.exceptions import AzureDevOpsServiceError
from azure.devops.v7_0.test.models import TestCaseResult

organization_url = 'https://dev.azure.com/msazuredev'
personal_access_token = ''
project_name = 'AzureForOperatorsIndustry'
run_id = 8239298 # Replace with the actual run ID
test_case_id = 1286862 # Replace with the actual test case ID
outcome = 'Failed' # Replace with the desired outcome (e.g., 'Passed', 'Failed', 'Blocked')

Create a connection to Azure DevOps using PAT

credentials = BasicAuthentication('', personal_access_token)
connection = Connection(base_url=organization_url, creds=credentials)

Get the test client

test_client = connection.clients.get_test_client()

try:
# Check if the test result exists in the specified test run
existing_result = test_client.get_test_result_by_id(project=project_name, run_id=run_id, test_case_result_id=test_case_id)

# Create a list of TestCaseResult to specify the update details
results = [
    TestCaseResult(id=test_case_id, state=outcome)
]

# Update the test results using the TestClient
updated_results = test_client.update_test_results(results, project=project_name, run_id=run_id)

# Print the updated results
for result in updated_results:
    print(f"Updated Test Result - Test Case ID: {result.id}, Outcome: {result.state}")

except AzureDevOpsServiceError as e:
if "cannot be found" in str(e):
print(f"Test result {test_case_id} does not exist in test run {run_id}. Skipping update.")
else:
print(f"Error updating test results: {e}")
print(f"Details: {e.response.text}")

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant