2012-09-05 8 views
5

मैं परीक्षण के लिए एमएसटेस्ट और डेटा संचालित दृष्टिकोण का उपयोग करता हूं। (एक्सेल परीक्षण के लिए डेटा स्टोरेज है)डेटा-संचालित परीक्षण के साथ डेटा पंक्ति के बजाय सबसे पुराना नाम

परीक्षण परिणाम परीक्षण डेटा के बारे में कोई जानकारी प्रदान नहीं करते हैं। उदाहरण के लिए:

परिणाम इस रूप में देखें: testname (डेटा पंक्ति 5)। और यह मेरे लिए स्पष्ट नहीं है।

मैं आउटपुट परीक्षण परिणाम कैसे अनुकूलित कर सकता हूं?

मैं MyData.xlsx 1000 पंक्तियाँ साथ दायर करवाना: उदाहरण testname के लिए (टेस्ट डेटा (शब्द, नंबर, या पंक्ति नाम))

उत्तर

4

मैं केवल एक ही समाधान मिल गया। सरल तर्क: "ए" कॉलम = 1, "बी" कॉलम = ए * 2 + 2।

पंक्तियों में 5,6,7 और 11,12,13 conteins शून्य विफल परिणाम बनाने के लिए शून्य।

मेरी टेस्ट के Sourcecode:

public TestContext TestContext { get; set; } 

    [TestMethod] 
    [DataSource("System.Data.Odbc", "Dsn=Excel Files;dbq=|DataDirectory|\\TestData\\MyData.xlsx;", "TestDataSheet$", DataAccessMethod.Sequential)] 
    public void ExcelDataSource1000Items() 
    { 
     var errorMessage = "Passed"; 

     int valueA = Convert.ToInt32(TestContext.DataRow["valueA"]); 
     int valueB = Convert.ToInt32(TestContext.DataRow["valueB"]); 
     try 
     { 
      Assert.AreEqual(valueA * 2 + 2, valueB); 
     } 
     catch (Exception exception) 
     { 
      errorMessage = exception.Message; 
     } 
     TestContext.WriteLine(string.Format("valueA: {0}, valueB: {1}, AssertResult: {2}", valueA, valueB, errorMessage)); 
    } 

मानकों के साथ MSTest कमांड लाइन से (पैदा * .trx फ़ाइल के लिए) निष्पादन परीक्षण के बाद:/testcontainer,/testsettings,/resultsfile हम परीक्षण के साथ * .trx फाइल उत्पन्न परिणाम है।

और अगर हम इस * .trx फ़ाइल खोलते हैं, हम देख सकते हैं TextMessages:

<Results> 
<UnitTestResult executionId="cfc325a7-647f-4ef3-bb08-777f7bb3ca37" testId="1dbff80d-1f74-5ea7-35fa-f2ecd1f9b9e4" testName="ExcelDataSource1000Items" computerName="AMDX6" duration="00:00:00.5764248" startTime="2012-09-06T03:21:45.2070571+04:00" endTime="2012-09-06T03:21:46.1251096+04:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="cfc325a7-647f-4ef3-bb08-777f7bb3ca37" resultType="DataDrivenTest"> 
    <Output> 
    <TextMessages> 
     <Message>valueA: 1, valueB: 4, AssertResult: Passed</Message> 
     <Message>valueA: 2, valueB: 6, AssertResult: Passed</Message> 
     <Message>valueA: 3, valueB: 8, AssertResult: Passed</Message> 
     <Message>valueA: 4, valueB: 0, AssertResult: Assert.AreEqual failed. Expected:&lt;10&gt;. Actual:&lt;0&gt;. </Message> 
     <Message>valueA: 5, valueB: 0, AssertResult: Assert.AreEqual failed. Expected:&lt;12&gt;. Actual:&lt;0&gt;. </Message> 
     <Message>valueA: 6, valueB: 0, AssertResult: Assert.AreEqual failed. Expected:&lt;14&gt;. Actual:&lt;0&gt;. </Message> 
     <Message>valueA: 7, valueB: 16, AssertResult: Passed</Message> 
     <Message>valueA: 8, valueB: 18, AssertResult: Passed</Message> 
     <Message>valueA: 9, valueB: 20, AssertResult: Passed</Message> 
     <Message>valueA: 10, valueB: 0, AssertResult: Assert.AreEqual failed. Expected:&lt;22&gt;. Actual:&lt;0&gt;. </Message> 
     <Message>valueA: 11, valueB: 0, AssertResult: Assert.AreEqual failed. Expected:&lt;24&gt;. Actual:&lt;0&gt;. </Message> 
     <Message>valueA: 12, valueB: 0, AssertResult: Assert.AreEqual failed. Expected:&lt;26&gt;. Actual:&lt;0&gt;. </Message> 
     <Message>valueA: 13, valueB: 28, AssertResult: Passed</Message> 
     <Message>valueA: 14, valueB: 30, AssertResult: Passed</Message> 
     <Message>valueA: 15, valueB: 32, AssertResult: Passed</Message> 
     <Message>valueA: 16, valueB: 34, AssertResult: Passed</Message> 
     <Message>valueA: 17, valueB: 36, AssertResult: Passed</Message> 
     <Message>valueA: 18, valueB: 38, AssertResult: Passed</Message> 
     <Message>valueA: 19, valueB: 40, AssertResult: Passed</Message> 
     <Message>valueA: 20, valueB: 42, AssertResult: Passed</Message> 

ये TextMessages परीक्षण रिपोर्ट उत्पन्न करने के लिए पार्स किया जा सकता। (उदाहरण के लिए)

पीएस क्षमा करें, मैं स्क्रीनशॉट नहीं जोड़ सकता, क्योंकि मेरे पास 10 या अधिक प्रतिष्ठा नहीं है = \

+0

हां, मैं सहमत हूं। लेकिन पहले परीक्षण डेटा के लिए TestContext.CurrentTestOutcome संपत्ति वापसी "प्रगति में"। परीक्षण विधि में TestContext.CurrentTestOutcome संपत्ति का उपयोग करने के लिए यह सही है। अगर मेरे पास "TestContext.WriteLine (TestContext.CurrentTestOutcome.ToString()) है;" TestCleanup विधि में, मुझे कुछ भी नहीं मिलता है। –

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