2

我正在寻找是否可以在运行时向 NUnit 动态添加额外的测试,我计划基于配置文件。我的测试旨在比较来自两个来源的数据(例如开发系统和测试系统,用于一组特定的值,包括日期和客户端。)因此,数据不需要硬编码(我这样做用于其他测试。)我目前已经为一组我想要测试的值(例如,不同的日期和客户)设置了大量测试,这些值被硬编码到我的源代码中,类似于如下:

[Test]
public void ClientName_Janurary_1_2012()
{
    RunTest("Client Name", new DateTime(2012, 1, 1));
}

但是,这意味着如果需要测试其他日期,则需要更改源代码[Test]以为每个日期添加一个方法(通常这些测试方法将只有一行,即调用另一种方法,日期为一个参数。)

是否可以动态创建在运行时出现在 NUnit 中的测试,因此可以通过更改配置文件来添加测试?

4

2 回答 2

4

我建议不要在每次数据更改时生成新测试,而是编写一个参数化测试和一个 NUnit 扩展,将文件用作测试的输入。您可能可以使用NUnit RowTest 之类的东西作为起点。

于 2012-07-10T06:02:45.487 回答
4

正如其他人所说,您真正要问的(我认为)是如何在运行时使用新的测试数据

您可以使用TestCaseSource属性在 NUnit 中本地执行此操作。只需将属性指向一个函数,该函数读取您的配置文件并将输入映射到所需的输出。测试数据中的每个点都将显示为该测试方法的一个单独的“子”。

于 2012-07-10T06:26:36.093 回答