интеграция автотестов с 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 шт):
Проблему решил следующим способом:
Самому тесту и к каждому тест-кейсу добавил атрибут 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 остается не изменным