通过不同的线程传递单元测试

时间:2013-07-22 23:26:00

标签: c# multithreading nunit

我遇到的性能问题只有在我的应用处理大量数据时才会显示。

尝试进行单元测试以确保良好的性能是不可行的,因为即使在最好的情况下,运行一次也需要5分钟。

我想确保我的表现不会变差,但我不希望其他测试必须等待超过5分钟(或更长时间)才能开始。我的第一次尝试是让这个测试在一个单独的线程上运行,但这意味着[Test]将始终传递为有效。

NUnit是否支持同时在分离的线程中运行不同的测试?

也许我需要的不是单元测试,我很乐意听到建议。

2 个答案:

答案 0 :(得分:2)

单元测试应该非常快速地运行(远小于1秒)并且应该在内存中运行,所以如果我们谈论5分钟。和加载数据,我们正在讨论集成测试。您应该使用(例如)以下约定创建用于集成测试的新项目,将该测试与单元测试分开:

  • Project.Tests.Unit
  • Project.Tests.Integration

您可以阅读更多有关单元测试与测试之间差异的信息。集成测试: http://www.typemock.com/unit-tests-integration-tests

答案 1 :(得分:1)

NUnit还支持测试设备上的“类别”。因此,如果您使用不同类别创建新的测试夹具,则可以指定要在套件中运行的类别。这是决定要一起运行哪些类型的测试的好方法。您可以构建不同的套件来运行不同的测试组。

http://www.nunit.org/index.php?p=category&r=2.2