gpt4 book ai didi

c# - 如何在每次 NUnit 测试后运行方法(甚至在拆卸时失败)

转载 作者:行者123 更新时间:2023-11-28 20:29:13 26 4
gpt4 key购买 nike

我正在使用 NUnit 开发测试库,并在测试运行时生成自定义报告。

在我的测试的TearDown 中,我调用了一个方法来报告测试结果。如果测试通过,它就可以正常工作,但如果测试失败、被忽略或不确定,则永远不会达到。

让事情变得更困难的是,TearDown 中的“//do stuff”也可能导致测试失败,在这种情况下仍需要记录它。但是 Assert 抛出一个异常,这意味着它离开了 block 并且永远不会到达报告代码。

[SetUp]
public void ExampleSetup()
{
//whatever
}

[Test]
public void ExampleTest()
{
//whatever
}

[TearDown]
public void ExampleTearDown()
{
//do stuff
someObject.ReportTestResult();
}

更多信息 - 使用 NUnit 3.2.0

最佳答案

通过查找 NUnit documentationFramework Extensibility章我们可以看到你需要使用Action Attribute .

Action 属性扩展点是:

designed to better enable composability of test logic by creating attributes that encapsulate specific actions to be taken before or after a test is run.

此扩展点的基本实现摘要

您需要在给定的 say FooBarActionAttribute() 类中实现 ITestAction 接口(interface)。

鉴于此,您实现了 BeforeTest()AfterTest()Targets 属性。

对于基本场景,您需要在上述两种方法中执行您的自定义操作。

您需要做的最后一件事是使用此属性,例如:

[Test][FooBarActionAttribute()]
public void Should_Baz_a_FooBar() {
...
}

这将在测试方法运行前后立即执行。

有关更高级的技术,请参阅链接的文档,它非常简单。

关于c# - 如何在每次 NUnit 测试后运行方法(甚至在拆卸时失败),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36362614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com