2011-01-24 11 views
14

के साथ समस्या मुझे अनिवार्य रूप से वही समस्या है जो नीचे लिंक किए गए प्रश्न के रूप में है, लेकिन मुझे इसे काम करने के लिए प्रतीत नहीं होता है। मैं "System.Data.DataRow" प्रकार की अभिव्यक्ति के लिए "अनुक्रमण [] लागू नहीं कर सकता"। जहां तक ​​मैं कह सकता हूं, मैंने समाधान को सही ढंग से कार्यान्वित किया है।एमएसटीएस्ट में डेटा संचालित परीक्षण - TestContext.DataRow

Problems with data driven testing in MSTest

[TestClass] 
public class UnitTest1 
{ 
    private TestContext testContextInstance; 

    public TestContext TestContext 
    { 
     get 
     { 
      return testContextInstance; 
     } 
     set 
     { 
      testContextInstance = value; 
     } 
    }   

    private ServiceReference1.ProductCatalogClient client = new ServiceReference1.ProductCatalogClient("BasicHttpBinding_IProductCatalog"); 

    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\CountList.csv", "CountList#csv", DataAccessMethod.Sequential), DeploymentItem("..\\ServiceTest\\CountList.csv"), TestMethod] 
    public void AreCountsCorrect() 
    { 
     int id = TestContext.DataRow["Id"] as int; 
     int count = client.GetProductCount(id); 
     Assert.IsTrue(count == TestContext.DataRow["Count"] as int); 
    } 
} 
+2

मेरी समस्या मिली: मेरे परीक्षण प्रोजेक्ट में System.Data का संदर्भ जोड़ने की आवश्यकता है। – bq1990

उत्तर

17

परीक्षण परियोजना के लिए System.Data के लिए एक संदर्भ जोड़ें। डेटा चालित परीक्षणों के लिए डेटारो का उपयोग करने के बाद से यह नहीं पता कि यह स्वचालित रूप से क्यों नहीं जोड़ा जाएगा।

0

इस एक मुझे

[TestMethod] 
    [TestCategory("Category 4")] 
    [DataSource("MyExcelDataSource")] 
    [DeploymentItem("UnitTestProject\\DBConnections.xlsx")] 
    public void testwithexceldata() 
    { 
     //http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.testcontext.datarow.aspx 

     int x = TestContext.DataRow.Table.Rows.Count; 
     int Balance = Convert.ToInt32(TestContext.DataRow["Balance"]); 
     int Amount = Convert.ToInt32(TestContext.DataRow["Amount"]); 
     Assert.AreEqual(Balance, Amount); 

} के साथ काम कर रहा है

1

मैं this.TestContext.DataRow [ "PathFile_Original"] के साथ आप के रूप में ही समस्या थी, मैं गलत क्या कर रहा था तो था सरल, मैंने System.Data का संदर्भ नहीं जोड़ा, वह सब कुछ था।

यह ठीक करना आसान है, सुनिश्चित करें कि आपके पास पहले से ही लाइब्रेरी है।

चीयर्स

5

आप अपने परीक्षण परियोजना के लिए संदर्भ जोड़ने चाहिए इस समस्या को हल करने के लिए। मुझे नहीं पता क्यों वीएस2013 इसे स्वचालित रूप से नहीं जोड़ता है।

राइट क्लिक करें अपने परीक्षण प्रोजेक्ट, एड-> संदर्भ ...-> असेंबली-> फ्रेमवर्क-> सिस्टम.डेटा, इसे जांचें।

हो गया!

enter image description here

1

आपकी समस्या का समाधान करने के लिए, के रूप में अन्य लोगों ने कहा है, तो आप अपनी परियोजना में System.Data के लिए एक संदर्भ जोड़ना चाहिए।

यदि आपको उस संदर्भ के बाद भी कोई समस्या हो रही है, तो आपको विजुअल स्टूडियो को पुनरारंभ करने की आवश्यकता हो सकती है, और किसी भी अनावश्यक संदर्भ या using हेडर को हटा देना पड़ सकता है।

+0

यह प्रश्न का उत्तर नहीं प्रदान करता है। किसी लेखक से स्पष्टीकरण की आलोचना करने या अनुरोध करने के लिए, अपनी पोस्ट के नीचे एक टिप्पणी छोड़ दें - आप हमेशा अपनी पोस्ट पर टिप्पणी कर सकते हैं, और एक बार आपके पास पर्याप्त [प्रतिष्ठा] (http://stackoverflow.com/help/whats-reputation) हो [किसी भी पोस्ट पर टिप्पणी करने में सक्षम] [http://stackoverflow.com/help/privileges/comment)। –

+0

धन्यवाद बॉब। मैंने अपना जवाब संपादित कर दिया है ताकि यह प्रश्न के उत्तर के रूप में पढ़ सके। – Frakur

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