将自动化测试与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);
}

我的问题: i can't test case Id in TearDown for check test case result

在TearDown中,我试图用这种方式获得测试用例id

var id = TestContext.CurrentContext.Test.Id这个方法返回错误的id,我不需要它

接下来我找到了这个例子,但是我不明白它是如何工作的

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

All my TearDown:

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属性时,Description属性必须在每个TestCase属性中指定。

[TestCase(Description = "C596")]
[TestCase(Description = "C596")] 
要获取id,可以使用下面的代码:

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

最新更新