c# - NUnit - 加载所有 TestCaseSources,即使当前测试不需要它们

标签 c# unit-testing nunit resharper integration-testing

我最近开始使用 NUnit 为我的项目进行集成测试。这是一个很棒的工具,但我发现了一个我似乎无法解决的缺点。我所有的集成测试都使用 TestCaseSource 属性并为每个测试指定一个测试用例源名称。现在的问题是准备这些测试用例源需要相当长的时间(~1 分钟),如果我运行单个测试,NUnit 总是加载每个单个测试用例源,即使它不是测试的测试用例源我正在运行。

是否可以更改此行为以便仅加载我正在运行的测试的测试用例源?我想避免每次创建新测试时都创建新程序集(看起来相当多余和麻烦,更不用说,难以维护),因为我读过不同程序集中的测试是分开加载的,但我不不知道测试用例的来源。值得一提的是,我使用 Resharper 作为测试运行器。

TL;DR:需要告诉 NUnit 只加载在当前 session 中运行的测试所需的 TestCaseSources。当前行为是为运行的任何测试加载所有 TestCaseSources。

最佳答案

您能否通过将源实例化移动到辅助方法并在每组测试的设置方法中调用它们来做到这一点? 我的集成测试套件中经常有一组辅助方法,用于为不同的测试设置共享数据。 我只调用 [Setup] 中当前套件所需的辅助方法

关于c# - NUnit - 加载所有 TestCaseSources,即使当前测试不需要它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18638948/

相关文章:

android - Espresso 无法解析 Intent Activity - 单元测试抽象基本 Activity

ruby-on-rails - RSpec, stub 嵌套资源方法

unit-testing - 我如何模拟 ServiceStack IHttpRequest

c# - 获取静态长度子串

c# - 在 Hololens 上将数据写入文件

unit-testing - 如何防止 Clojure 测试之间的符号污染?

nunit - 您能否像将数据传递给测试用例一样将数据传递给测试装置?

nunit - 从 TeamCity 运行 NUnit 测试时出现 FileNotFoundException

c# - 与 Outlook 互操作的 OpenSharedItem 在 Office 2003 中抛出奇怪的异常,与 Office 2008 一起工作

c# - 使用 Microsoft.Office.Interop.Excel 导出时我是否正确关闭了 excel 文件