интеграция автотестов с TestRail

стэк: с#, ef, NUnit

имеется некий тест, где в Description указан id данного теста из TestRail

[Test(Description = "C596")]
[TestCase()]
[TestCase()] 

OneTimeSetUp

public void OneTimeSetUp(){
Client = new TestRailClient(Url, User, Password);
var commandResult = Client.AddRun(_projectId, 2, "test run demo" + DateTime.UtcNow.Ticks, "test run demo", 2);
}

Проблема: не могу в TearDown получить id тест-кейса, который прогоняется в данный момент, для того, чтобы проверить результат после прогона кейса
Пытался получить id вот таким способом, но он возвращает не тот id, который мне нужен

 var id = TestContext.CurrentContext.Test.Id;

дальше нашел вот такой пример, но так и не смог понять как это работает и как из этого вытащить id кейса, нашел инфу в документации самого NUnit, но ничего особого не узнал

Весь мой TearDown в котором я и хочу получить id тест-кейса, которые прогоняется в данный момент, для проверки результата, выглядит вот так:

public void Dispose()
        {
            var id = TestContext.CurrentContext.Test.ID;
            var result = TestContext.CurrentContext.Result.Outcome.Status;
            var testRailStatus = result switch
            {
                TestStatus.Failed => ResultStatus.Failed,
                TestStatus.Passed => ResultStatus.Passed,
                _ => ResultStatus.Retest
            };

            var resultForCase = Client.AddResultForCase(_runId, ulong.Parse(id), testRailStatus);
            Console.WriteLine(resultForCase.WasSuccessful);
        }

Как я могу получить id кейса? Хелпаните, пожалуйста, кто знает


Ответы (1 шт):

Автор решения: Ruslan F

Проблему решил следующим способом:
Самому тесту и к каждому тест-кейсу добавил атрибут Description с указанием id тест-кейса из TestRail:

[Test(Description = "596")]
[TestCase(case data, case data, Description = "596")]
[TestCase(case data, case data, Description = "596")]

В TearDown id получаю следующим способом:

var id = TestContext.CurrentContext.Test.Properties.Get("Description").ToString().Replace("C", "");

Весь остальной TearDown остается не изменным

→ Ссылка