我如何在[Setup]或[OneTimeSetup]中传递参数,这样我就不必调用测试类中的方法了



在TestNg中,我们有@BeforeMethod,可以在其中传递参数。但在Nunit中,我得到了一个异常"OneTimeSetUp:SetUp和TearDown方法不能有参数:TestInitialize"。我正试图通过out调用为类中的每个测试创建扩展报告。在每个[Test]方法中创建测试方法

[SetUp]
public void TestInitialize(MethodInfo method)
{
StartReport(TestContext.CurrentContext.Test.Name);
string testName = method.Name;
test = extent.CreateTest(testName);
}
[Test]
public void GetHealthTest()
{
test.Log(Status.Info, "Before calling GetHealth API");
var health = heartbeat.GetHealth();
test.Log(Status.Info, "After GetHealth API call");
Assert.AreEqual(health.StatusCode, HttpStatusCode.OK);
}

如果只需要SetUp中当前测试的名称,请使用TestContext.CurrentContext.Test.Name。还有其他属性,如FullNameMethodName,具体取决于您希望在报告中看到的内容。

也就是说,即使使用SetUp,这也是一种非常"繁忙"的报告方式。NUnit还支持引擎扩展,允许您在测试程序集本身之外创建报告。此外,还可以简单地编写一个程序,从测试运行中读取XML结果文件并创建报告。

相关内容

最新更新