C# 如何在测试拆卸时使用NUnit 3读取ITestResult

C# 如何在测试拆卸时使用NUnit 3读取ITestResult,c#,selenium,nunit,nunit-3.0,C#,Selenium,Nunit,Nunit 3.0,我正在尝试使用内部ITestResult接口在NUnit 3中获取测试结果。但是,当我将ITestResult对象传递给拆除方法时,我会得到“OneTimeSetup:安装或拆除方法的无效签名:TestFinished”,其中TestFinished被列为我的拆除方法 如果我没有通过测试,测试就可以正常进行。我试图将我的[TearDown]方法移动到包含测试的实际类,而不是基类,但结果是相同的错误。我希望在每个测试完成时都运行TestFinish函数,这样我就可以根据通过/失败或异常消息中的内容

我正在尝试使用内部ITestResult接口在NUnit 3中获取测试结果。但是,当我将ITestResult对象传递给拆除方法时,我会得到“OneTimeSetup:安装或拆除方法的无效签名:TestFinished”,其中TestFinished被列为我的拆除方法

如果我没有通过测试,测试就可以正常进行。我试图将我的[TearDown]方法移动到包含测试的实际类,而不是基类,但结果是相同的错误。我希望在每个测试完成时都运行TestFinish函数,这样我就可以根据通过/失败或异常消息中的内容进行相应的操作,而不是使用我现在的testtry/catch操作结构

下面是我的代码结构:

----开始和结束测试并创建要使用的webdriver对象的文件---

----用于设置或拆除测试的基本测试类----

----使用BaseTestClass的测试文件----


TearDown
方法中删除
ITestResult
,并在方法中使用
TestContext.CurrentContext.Result

比如说,

[Test]
public void TestMethod()
{
    Assert.Fail("This test failed");
}

[TearDown]
public void TearDown()
{
    TestContext.WriteLine(TestContext.CurrentContext.Result.Message);
}
将输出

=> NUnitFixtureSetup.TestClass.TestMethod
This test failed

这为我使用TestContext.CurrentContext.Result.Output指明了正确的方向,谢谢!这样就可以了:)
class AccountConfirmation : BaseTestClass
{

    [Test]
    public void VerifyAccountData() {

        TestRunner(() => {
           //Do a test...
        });

    }
}
[Test]
public void TestMethod()
{
    Assert.Fail("This test failed");
}

[TearDown]
public void TearDown()
{
    TestContext.WriteLine(TestContext.CurrentContext.Result.Message);
}
=> NUnitFixtureSetup.TestClass.TestMethod
This test failed