9

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

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

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

4

1 回答 1

1

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

于 2013-09-06T13:23:11.813 回答