使用 NUnit 映射测试用例 ID

Kpi*_*zle 4 c# nunit automated-tests unit-testing testrail

我目前正在使用 NUnit 构建我的自动化框架,一切都运行良好,我想要做的最后一个改进是能够将我的自动化测试脚本映射到我的测试软件中的测试用例。

我对所有测试用例都使用 TestRail。

我的理想情况是能够用测试轨中相应的测试用例 ID 来装饰每个测试用例,并且当需要在 TestRail 中报告测试结果时,我可以只使用 Case id 。目前我正在通过匹配测试名称/脚本名称来执行此操作。

例子 -

[Test]
[TestCaseId("001")]
    public void NavigateToSite()
    {
        LoginPage login = new LoginPage(Driver);
        login.NavigateToLogInPage();
        login.AssertLoginPageLoaded();
    }
Run Code Online (Sandbox Code Playgroud)

然后在我的拆卸方法中,它会是这样的 -

[TearDown]
public static void TestTearDown(IWebDriver Driver)
    {
       var testcaseId = TestContext.CurrentContext.TestCaseid;
       var result = TestContext.CurrentContext.Result.Outcome;
       
      //Static method to report to Testrail using API
      Report.ReportTestResult(testcaseId, result);
    }
Run Code Online (Sandbox Code Playgroud)

我刚刚编写了 testcaseid 属性,但这就是我正在寻找的。

[测试用例ID(“001”)]

如果它已经存在,我可能会错过它,或者我该如何扩展 NUnit 来做到这一点?

小智 5

您可以使用PropertyAttributeNUnit 提供的。

例子:

[Property("TestCaseId", "001")]
[Test]
public void NavigateToSite()
{
...
}

[TearDown]
public void TearDown()
{
    var testCaseId = TestContext.CurrentContext.Test.Properties["TestCaseId"];
}
Run Code Online (Sandbox Code Playgroud)

此外,您可以创建自定义属性 - 请参阅NUnit 链接