我正在尝试将我的自动化测试与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","");