首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在NUnit 3.2中创建全局初始化?

如何在NUnit 3.2中创建全局初始化?
EN

Stack Overflow用户
提问于 2016-03-22 15:01:49
回答 1查看 4.1K关注 0票数 6

我试图在所有测试之前设计一套测试服来运行全局初始化。我们可以考虑在不同的类和名称空间中存在测试。在NUnit文档中,我只找到一个名为OneTimeSetUp的属性,但它只适用于同一个命名空间中的测试。

所以,我设计使用继承。我的所有测试类都继承了一个基类,其中他的构造函数执行全局inicialization (借助静态变量检查它是否已初始化),与析构函数中的全局拆卸相同。

使用它,我可以创建我的场景。但是,当测试套件运行时,基类会创建新的对象,因为在不同的类和名称空间中都有测试。它会导致系统中的过载,而下一个测试运行缓慢:第一个测试在50秒内运行,而另一个测试(在不同的名称空间中做相同的事情)在120秒内运行。

有一种更好的方法可以在不影响测试性能的情况下创建全局无关化和全局拆卸。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-22 15:14:13

正确的是,OneTimeSetUp只适用于同一命名空间中的测试,但正如 documentation注意到的:

任何命名空间之外的为整个程序集提供SetUp和TearDown。

所以这门课看起来是这样的:

代码语言:javascript
运行
复制
using System;
using NUnit.Framework;

[SetUpFixture]
public class TestInitializerInNoNamespace 
{
    [OneTimeSetUp]
    public void Setup() { /* ... */ }

    [OneTimeTearDown]
    public void Teardown() { /* ... */ }
}
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36157932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档