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

Ans*_*hul 9 c# resharper integration-testing nunit unit-testing

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

是否可以更改此行为,以便只运行测试的测试用例源?我想避免在每次创建新测试时创建新的程序集(看起来相当多余和繁琐,更不用说,难以维护),因为我已经读过不同程序集中的测试是单独加载的,但我不知道了解测试用例来源.值得一提的是,我正在使用Resharper作为测试运行器.

TL; DR:需要告诉NUnit只加载当前会话中运行的测试所需的TestCaseSource.当前行为是为所有运行的测试加载所有TestCaseSources.

小智 1

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