8

我正在尝试在调用 setup 方法后调试测试,并且测试取决于调用的 setup 方法。

我正在使用 Nunit 2.6.0.12051 测试一个 .Net 4.0 类库。nunit Visual Studio 项目有一个标有 [SetUpFixture] 的类和一个标有 [SetUp] 的方法。

如果我从 NUnit gui 运行测试,我相当确定 setup 属性类被调用(因为它现在没有在 setup 类停止并出现运行时错误)但我无法调试它. 如果我尝试更改设置以查看详细跟踪,NUnit gui 会引发未处理的异常。

如果我通过测试视图/调试选择从 Visual Studio 运行测试,设置方法的断点不会停止执行,并且方法内的跟踪语句不会在调试窗口中打印。所以我确定设置方法没有被调用。

虽然我可以将设置类更改为所有测试类的基础,但我只需要运行一次该方法。

任何帮助都会很棒。

4

4 回答 4

3

我刚刚遇到了这个问题,最终从NUnit SetUpFixture 文档中找到了这个重要的句子:

“这是标记一个类的属性,该类包含给定命名空间下所有测试装置的一次性设置或拆卸方法。”

原来我的 SetUpFixture 类与我的测试在一个完全不同的命名空间中,所以它没有被运行。

于 2015-10-05T16:51:06.937 回答
2

在使用来自 NuGet (2.6) 的最新 NUnit 时,我也注意到了这一点。[Setup] 方法不会在 [Test] 方法之前运行。

我不知道他们为什么改变了 NUnit 的这个相当重要的部分,但我为了我的目的修复了它,返回到在 [Test] 之前运行 [Setup] 的版本 2.5.10。

于 2012-05-22T08:19:31.870 回答
1

我也遇到了这个问题,但是安装最新版本的测试运行器(在我的例子中是 TestDriven.NET)修复了它。对我来说这不是 NUnit 问题。

于 2013-09-05T20:01:13.330 回答
1

我刚刚遇到了类似的问题。我的单元测试也没有调用设置。阅读 NUnit 文档后。在最佳答案中提到,我认为我的解决方案非常简单。简单来说,我错过了“设置”。阅读文档后意识到。

*来自顶级答案中提到的NUnit SetUpFixture 文档的示例。

[SetUp] 
RunBeforeAnyTests()
{
//
}

----------------------------------------------------

// this was my fixed up code
// simply added [Setup] and boom, bob is your uncle.

[SetUp] 
public void Setup()
{
    readChoice.Reset();
}
于 2020-04-01T13:31:47.113 回答