使用不同的环境设置使所有测试多次运行

本文关键字:测试 运行 设置 环境 | 更新日期: 2023-09-27 18:32:47

所有测试在我的系统中都会创建相同的"根对象",并且"根对象"具有多种模式。我需要每个测试来检查每种模式的所有内容。因此,我决定在"根对象"中创建一个内部静态属性,我可以在其中覆盖创建时使用的模式。

现在,测试行为取决于环境设置。我有大量的测试,我无法修改它们中的每一个以针对每种可能的模式测试相同的东西。

相反,我想在一个地方设置模式。

我希望当我在 R# 中点击"运行所有测试"时,所有测试为每个静态设置模式运行一次。

可以做到吗?

使用不同的环境设置使所有测试多次运行

您可以在 NUnit 中通过在测试定义的命名空间层次结构的所需级别创建 SetUpFixture 来执行此操作。该灯具的 OneTimeSetUp 方法准备环境,如有必要,OneTimeTearDowm 方法会清理环境。如果要为整个程序集执行此操作,只需在任何命名空间之外使用 SetUpFixtureAttribute 定义类。

[SetUpFixture]
public static class MySetUpFixture
{
    [OneTimeSetUp]
    public static void SetUpTestEnvironment()
    {
        // Set up the environment, possibly leaving information
        // for the tests to use in static fields or properties.
    }
    [OneTimeTearDown]
    public static void CleanUpEnvironment()
    {
        // If any cleanup is needed, do it here
    }
}

类和方法不必是静态的,但使用静态将记住这样一个事实,即 SetUpFixture 实例和 TestFixture 实例之间没有通信。

测试可以简单地使用 SetUpFixture 创建的环境,也可以查询类的静态属性来更改其行为。