個別のテスト ケースごとに大量のデータを必要とするかなり複雑な統合テストがあります。
私のテストケースクラスは次のとおりです。
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 を閉じて再読み込みし、何も変更せずにテストを再実行すると、テスト コードが繰り返し実行されます。これは一時的な不具合だったのではないかと疑い始めています。