我有一个奇怪的问题,谷歌证明了这个问题:
我在.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开始构建除了当前正在运行测试的类之外的任何其他类的测试用例。