我有一个奇怪的问题,谷歌已经证明是荒谬的:
我在 .net 中有一个项目,其中有大约 20 个类,其中都有测试。其中一个类具有通用的测试设置代码,尽管其中一些类具有自己的 TestFixtureSetup,看起来与通用类完全一样(不是我的架构选择——这早于我的工作)。我有自己的测试类,我有一些不同的代码在运行类中的一些特定测试之前运行。
更多相关信息:我拥有的自定义设置代码使数据可用于我自己的测试类中的一些组合测试。作为组合参数的值源,返回的 List 首先初始化一些数据。
好吧,问题来了:当我尝试在另一个测试类中运行测试时,它正在“构建”来自其他所有类的测试。就我而言,它正在构建我拥有的组合测试 - 因此触发了我拥有的自定义设置方法。
如何防止 NUnit 在其他类中构建测试?例如,我在一个类中运行测试,我希望 NUnit 做的只是从该类构建测试。
我试图删除任何 NDA-no-no 语言,但这是我拥有的组合:
[Test, Combinatorial, Category("Regressive")]
public void Test05_CombiTestExample(
[ValueSource("ListA")] User user,
[ValueSource("ListB")] KeyValuePair<string, string> searchKvp,
[ValueSource("ListC")] string scope)
{
这是正在参考的列表之一:
public IEnumerable<KeyValuePair<string, string>> ListB
{
get
{
InitCustomData();
if ([Redacted] != null)
{
return new Dictionary<string, string>()
{
[Redacted]
};
}
return null;
}
}
有问题的行是“InitCustomData();” 因为我的组合是在运行任何设置或任何东西之前构建的,所以无论如何都在执行。我希望它留在这里——我只是不希望 NUnit 从任何其他类开始构建测试用例,除了它当前正在运行测试的类。