将自动化测试与 TestRail 集成

时间:2021-07-29 19:55:12

标签: c# automated-tests nunit 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 此方法返回错误的 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 以检查他的结果?
谢谢!

1 个答案:

答案 0 :(得分:0)

使用 TestCase 属性时,必须在每个 TestCase 属性内指定 Description 属性。

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

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

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