将自动化测试与 TestRail 集成

Integrate automation tests with TestRail

我正在尝试将我的自动化测试与 TestRail 集成。我使用 c#、ef 和 NUnit

我有测试,他的Id在TestRail中。在描述中,我指出了来自 TestRail

的案例 ID
[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 以检查测试用例结果

在 TearDown 中,我尝试通过这种方式获取测试用例 ID

var id = TestContext.CurrentContext.Test.Id 此方法 returns 错误的 ID,我不需要

接下来我找到了这个例子,但我无法理解它是如何工作的

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

我所有的拆解:

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来检查他的结果?
谢谢!

使用 TestCase 属性时,必须在每个 TestCase 属性中指定描述 属性。

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

现在要获取 id,您可以使用您的代码:

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