2012-10-03 118 views
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語句執行w/o問題,但測試方法本身未被調用 - 或者說不是可預測的。

看,我已經寫過這個問題了,然後我試着將測試類移出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,並重新運行試驗後,測試代碼重複執行。我開始懷疑這是一個短暫的故障。

回答

1

由於重新加載VS的測試方法執行得很好。我把它作爲一個小故障來解決這個問題。

相關問題