0

個別のテスト ケースごとに大量のデータを必要とするかなり複雑な統合テストがあります。

私のテストケースクラスは次のとおりです。

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" } }
        };
    }
  }
}

私のテストメソッドのヘッダーは次のとおりです。

[Test, TestCaseSource(typeof(TestCases), "MatchingCases")]
public void Search_VariableFilter_NoAccountTeam_ResultIncludesExpected(SearchSetup searchSetup)

テストを実行すると、決定的な結果が返されません。コードをステップ実行すると、MatchingCases プロパティの getter がアクセスされていることがわかり、yield return ステートメントは問題なく実行されますが、テスト メソッド自体は呼び出されません。

ほら、この質問を一度書いた後、テストクラスを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; }
}

更新 - 翌日

Visual Studio を閉じて再読み込みし、何も変更せずにテストを再実行すると、テスト コードが繰り返し実行されます。これは一時的な不具合だったのではないかと疑い始めています。

4

1 に答える 1

1

VS をリロードしてから、テスト メソッドは正常に実行されます。この質問を締めくくるために、私はそれをグリッチとしてチョークしています。

于 2012-10-09T12:11:15.597 に答える