unit-testing - 您如何在大型项目中构建NUnit测试?

标签 unit-testing nunit

我对是否可以改善在包含30多个项目的Visual Studio解决方案中使用NUnit的方式感兴趣。

首先,解决方案中的每个程序集都有一个测试程序集,还是要减少测试程序集的数量?我开始创建许多测试程序集,但是我认为这在构建时间上花费了我们很多。

其次,您使用什么策略来管理那些长期运行或需要特殊环境配置的测试?我想编写一个MSBuild脚本来自动化我们的单元测试的运行,但是它需要跳过那些会花费太长时间或无法在构建机器上运行的测试。

最佳答案

要回答您的第一个问题:

如果要这样做,可以使用categories将所有内容组织在一个程序集中。至于是否会减少构建时间,我可能会猜测一下,尽管如此,我认为总体上来说并不会很大。

回答您的第二个问题:

您可以使用categories以及 [Explicit] [Ignore] 属性来告诉NUnit运行哪些测试,以及必须告诉它运行哪些测试。您可能还需要查看[Platform]或其他一些属性,具体取决于您对“环境”的要求。

例如,您可以在所有长时间运行的测试中添加一个Explicit标签。然后,您将必须明确地运行这些测试,NUnit不会自动运行它们。或将所有这些测试添加到类别中,然后在运行NUnit时,告诉它明确不运行该类别。

关于unit-testing - 您如何在大型项目中构建NUnit测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/173616/

相关文章:

c# - 用于单元测试的模拟周期性计时器

c# - 具有值数组的 NUnit 测试

c# - 模拟 UdpClient 进行单元测试

Node.js Mocha 单元测试错误 re : Mongoose mocks with Mockgoose, "Error setting TTL index on collection : sessions"

javascript - 传递给组件的 ReactJS/Jest : How to test/mock a function,

ruby-on-rails - 你最喜欢的 ruby​​ 和 rails 测试 "gem(s)"或 "plugins"

c# - 有没有办法在我的 NUnit 单元测试中使用 EQATEC 分析器?

c# - 如何模拟在单元测试函数中使用的 SmtpClient 对象

c# - 使用 Task.Factory.StartNew().ContinueWith() 的单元测试代码

c++ - 最佳实践 - 在单元测试中链接到 lib 或编译源代码