单元测试,NUnit还是Visual studio?

11 浏览
0 Comments

单元测试,NUnit还是Visual studio?

我使用Visual Studio(有时使用ReSharper)来运行我的单元测试。\n我听说过NUnit,但我对它了解不多...\n我应该关心它吗?它能比Visual Studio提供更好的东西吗?\n我应该使用NUnit吗?为什么?

0
0 Comments

问题原因:

1. MS Test在运行单个测试时,启动执行时间非常长。

2. 执行测试需要占用约1GB内存,经常出现OutOfMemoryExceptions异常。

3. 由于资源占用过多,开始使用批处理文件来执行测试,导致整合性无意义。

4. MS Test存在漏洞和不稳定性问题,例如,移除测试上的[Ignore]属性后,MS Test无法识别,需要刷新测试列表或重新启动VS。

解决方法:

1. 执行更多的测试使得无法从Visual Studio中运行所有测试,解决方法是使用脚本来运行测试,并使用文本搜索来查找失败的测试。

2. 使用VS 2013并不会改善问题,因为MS Test测试运行器已经经历了三次重写,导致了许多不兼容性问题。

3. 结合使用Resharper可以提高MS Test的效用,并希望在下一个Visual Studio更新中不再出现破坏性的更改。

MS Test在与Resharper结合使用时是有用的,但仍存在性能问题,特别是在调试模式下。建议使用"ctrl+F5"而不是"F5"来提高性能。希望在下一次更新中解决这些问题。

0
0 Comments

问题的出现原因:

1. MSTest框架运行测试的速度较慢,无论是运行测试套件还是单个测试。

2. 使用MSTest需要维护一个测试元数据文件,这在多个开发者同时工作时会导致复杂性增加,需要重新创建元数据等操作。其他测试套件并不需要元数据文件,通过命名空间、类和方法名即可实现相同的组织测试功能。

3. 在进行持续集成时,如果想要在构建机器上运行单元测试,就需要在该机器上安装Visual Studio。

解决方法:

1. 可以选择使用NUnit替代MSTest。虽然可能无法获得集成的测试结果报告,但开发者可以获得更顺畅的测试体验。

2. 可以考虑使用其他开源测试框架,如xUnit、MbUnit等,这些框架更好用。

如果再次做出选择,我可能会选择NUnit。虽然可能无法获得集成的测试结果报告,但开发者可以获得更顺畅的测试体验。如果没有其他选择,可以选择MSTest,但最好避免使用。

0
0 Comments

问题:应该选择使用哪个单元测试框架,NUnit还是MS-Test?

原因:根据提供的信息,NUnit相对于MS-Test有一些优势,例如可以使用Suite属性来聚合测试并单独执行,拥有易读的Assert方法,可以通过传递参数化的测试来运行测试,以及具有频繁的版本更新。此外,NUnit还有许多集成的运行器,如Resharper和TestDriven.NET。

解决方法:根据个人或团队的需要和偏好,可以选择使用NUnit或MS-Test作为单元测试框架。NUnit可以使用Assert.AreEqual(expected, actual)来进行断言,而MS-Test可以使用Assert.That(actual, Is.EqualTo(expected))来进行断言。此外,NUnit还提供了Suite属性来聚合和执行测试,而MS-Test则可以使用ExpectedExceptionAttribute来断言异常。

根据提供的信息,选择使用NUnit还是MS-Test作为单元测试框架取决于个人或团队的需求和偏好。NUnit具有一些优势,如Suite属性、易读的Assert方法、频繁的版本更新和集成的运行器,而MS-Test则具有ExpectedExceptionAttribute来断言异常。选择哪个框架取决于项目的规模、测试的复杂性以及个人或团队的习惯和喜好。

0