Nunit 为什么不是';我的测试方法没有执行吗?

Nunit 为什么不是';我的测试方法没有执行吗?,nunit,testcasesource,Nunit,Testcasesource,我有一个相当复杂的集成测试,在每个不同的测试用例中需要大量的数据 我的测试用例类如下所示: public class TestCases { public static IEnumerable MatchingCases { get { yield return new SearchSetup { MinimumMatches = 1, BulletinSetups = new List<

我有一个相当复杂的集成测试,在每个不同的测试用例中需要大量的数据

我的测试用例类如下所示:

public class TestCases
{
  public static IEnumerable MatchingCases
  {
    get
    {
      yield return
        new SearchSetup
        {
         MinimumMatches = 1,
         BulletinSetups = new List<BulletinSetup>
                      {
                        new BulletinSetup
                          {
                            ParameterSetups = new List<ParameterSetup>
                                     {
                                       new ParameterSetup
                                         {
                                          FieldName = "Number",
                                          ParameterName = "@Number",
                                          Value = "TBS1001" + DateTime.Now.ToLocalTime()
                                         }
                                     }
                          }
                      },
         FilterValues = new Dictionary<string, object> { { "Number", "TBS1001" } }
        };
    }
  }
}
当我运行测试时,它返回非决定性结果。当我逐步遍历代码时,我发现MatchingCases属性getter正在被访问,并且yield-return语句执行w/o-issue,但是测试方法本身没有被调用——或者说,不可预测

看,我已经写了一次这个问题,然后我尝试将测试类移出testfixture范围。当我这样做时,代码执行了一次,所以我放弃了我的问题。然后它停止执行了

为什么不调用我的测试方法

编辑:预测问题-这些是正在使用的支持类:

public class ParameterSetup
{
    public string ParameterName { get; set; }
    public string FieldName { get; set; }
    public object Value { get; set; }
}

public class BulletinSetup
{
    public List<ParameterSetup> ParameterSetups { get; set; }
}

public class SearchSetup
{
    public List<BulletinSetup> BulletinSetups { get; set; }
    public int MinimumMatches { get; set; }
    public Dictionary<string, object> FilterValues { get; set; }
}
公共类参数设置
{
公共字符串参数名称{get;set;}
公共字符串字段名{get;set;}
公共对象值{get;set;}
}
公共类公告安装
{
公共列表参数设置{get;set;}
}
公共类搜索设置
{
公共列表BulletinSetup{get;set;}
公共int最小匹配{get;set;}
公共字典筛选器值{get;set;}
}
更新-第二天


关闭并重新加载VisualStudio,在没有任何更改的情况下重新运行测试后,测试代码将重复执行。我开始怀疑这是一个暂时的小故障。

因为重新加载与测试方法相比执行得很好。为了解决这个问题,我把它记为一个小故障

public class ParameterSetup
{
    public string ParameterName { get; set; }
    public string FieldName { get; set; }
    public object Value { get; set; }
}

public class BulletinSetup
{
    public List<ParameterSetup> ParameterSetups { get; set; }
}

public class SearchSetup
{
    public List<BulletinSetup> BulletinSetups { get; set; }
    public int MinimumMatches { get; set; }
    public Dictionary<string, object> FilterValues { get; set; }
}