2012-02-26 10 views
10

मैंने एमएसटेस्ट फ्रेमवर्क का उपयोग कर डेटा संचालित परीक्षण लागू किया है।डेटा संचालित परीक्षणों में TestContext से पुनरावृत्ति/रेखा संख्या कैसे प्राप्त करें?

मैं सोच रहा था कि टेस्टकॉन्टेक्स्ट ऑब्जेक्ट से वर्तमान परीक्षण कोड की पुनरावृत्ति/रेखा संख्या प्राप्त करने का कोई तरीका था या नहीं?

जहां तक ​​मैं देख सकता हूं, डीडीटी से संबंधित एकमात्र संपत्ति डेटारो है जो डेटा स्रोत से वर्तमान पुनरावृत्ति के लिए जानकारी प्राप्त करने में सक्षम बनाता है, लेकिन मुझे कोई ऐसी संपत्ति नहीं दिखती जो मुझे चाहिए।

उत्तर

15

इस प्रयास करें:

int currentIteration = TestContext.DataRow.Table.Rows.IndexOf(TestContext.DataRow); 
+2

धन्यवाद कर सकते हैं, कि काम किया :) – user1039580

+0

आपने इसे खोजने के लिए डीबगर और निरीक्षण को देखा होगा। मैंने इसे जल्द ही नहीं देखा। एमएसडीएन इस उपयोगी ऑब्जेक्ट टेबल का भी उल्लेख नहीं करता है। –

0
private readonly PropertyInfo _rowIdProp = typeof(System.Data.DataRow).GetProperty("rowID", BindingFlags.NonPublic | BindingFlags.GetProperty | BindingFlags.Instance); 

.. 

// No datarow means only one iteraton 

var currentIteration = DataRow == null ? 1 : (Int64)_rowIdProp.GetValue(DataRow, null); 
0

इस डेटा स्रोत विशेषता के बिना है, लेकिन मैं आपको बता दूँ कि यह पाश के लिए बिना स्वयं यह द्वारा पुनरावृति

 for (int i = 0; i < x; i++) 
     { 
      int currentIteration = TestContext.DataRow.Table.Rows.IndexOf(TestContext.DataRow); 
      DataTable dt = TestContext.DataRow.Table; 
      int rowCount = dt.Rows.Count; 

      DataRow secondRow = dt.Rows[i]; 
      string name = secondRow["name"].ToString(); 
      int Balance = Convert.ToInt32(secondRow["Balance"]); 
      int Amount = Convert.ToInt32(secondRow["Amount"]); 
      int Count = Convert.ToInt32(secondRow["Count"]); 
      Assert.AreEqual(Balance, Amount); 

     } 
संबंधित मुद्दे