2013-06-06 12 views
8

विजुअल स्टूडियो 2012 में मेरे कोड किए गए यूआई परीक्षण चलाने के बाद मैं चाहता था कि परीक्षा परिणाम HTML फ़ाइल में लॉग ऑन हों। this ट्यूटोरियल का पालन करने के बाद मैं इसे प्राप्त करने में सक्षम था।कोडित यूआई टेस्ट एचटीएमएल लॉग संयोजन?

दुर्भाग्य से, हर एक परीक्षण ..\TestResults\<Test Run Folder>\In\<Individual Test Log Folder>\<PC Name>\UITestActionLog.html पर उसके अपने HTML रिपोर्ट हो जाता है, वर्तमान में मैं 3 अलग अलग-अलग परीक्षण किया है और प्रत्येक ..\TestResults\<Test Run Folder>\In\

प्रत्येक जिसके परिणामस्वरूप HTML फ़ाइल पर अपने स्वयं के फ़ोल्डर हो जाता है इस तरह दिखता है:

enter image description here

क्या मैं चाहता हूँ के लिए सभी 3 HTML फ़ाइलों एक में जोड़ा जा रहा है, और सिर्फ

के बजाय

> टेस्ट 1

यह होगा की तरह

> टेस्ट 1

> टेस्ट 2

> टेस्ट 3

वहाँ यह करने के लिए एक रास्ता है स्वचालित रूप से कुछ कॉन्फ़िगरेशन विकल्पों के साथ या क्या मैं सभी HTML फ़ाइलों को मर्ज करने के लिए एक प्रोग्राम लिखना चाहता हूं स्वयं?

+0

मैं कहूंगा कि एचटीएमएल फाइलों को मर्ज करने के लिए इसका इस्तेमाल करें, जो मैंने पहले किया था। http://softsnow.griffin3.com/merger/merger.shtml – adaam

+0

यदि एचटीएमएल एक्सएचएमएल अनुपालन है, तो आप एक छोटा सी # ऐप लिख सकते हैं जो सभी * .html के माध्यम से पुनरावृत्त करता है और डेटा निकालने के लिए linq2xml का उपयोग करता है। – tofi9

+0

@taoufik ऐसा लगता है जैसे यह एक .XML फ़ाइल में होगा, मैं अंत परिणाम को संयुक्त होना पसंद करूंगा। HTML फ़ाइल –

उत्तर

2

ने स्वयं द्वारा एक समाधान का पता लगाया, प्रत्येक HTML लॉग से <div class="g"> नोड्स लेने के लिए एक प्रोग्राम लिखा और उन्हें एक HTML फ़ाइल में गठबंधन किया। एक जादू की तरह काम करता है।

+2

क्या यह प्रोग्राम अपलोड करना संभव होगा, यह मेरे लिए वास्तव में उपयोगी होगा। – matthiasgh

1

मैंने अपना स्वयं का समाधान भी लिखा है। एचटीएमएल चपलता पैक का उपयोग करके एक घंटे खर्च करने के बाद, और इसे कभी-कभी एचटीएमएल 5 एम्बेडेड छवियों के साथ तोड़ने की खोज करना ">, <"।

मैं बस एक सांत्वना अनुप्रयोग है कि HTMLs पार्स लिखा था, और 1 में जोड़ती है:

cmd ActionLogBuilder inputfile's.html outputfile.html

(यह बहुत कच्चे है, लेकिन काम करता है)

static void Main(string[] args) 
{ 
    bool only2 = false; 
    StringBuilder outputFile = new StringBuilder(); 
    if (args.Length == 2) 
    {    
     try 
     { 
      System.IO.File.Delete(args[1]); 
     } 
     catch 
     { 
      Console.WriteLine("No file to delete"); 
     } 

     System.IO.File.Move(args[0], args[1]); 
     only2 = true;    
    } 
    int endArg = args.Length; 
    Console.WriteLine(endArg.ToString()); 
    int c = 0;     
    if(!only2) 
    { 
     foreach (string a in args) 
     { 
      if (c == (endArg - 1)) 
      { 
       System.IO.TextWriter w = new System.IO.StreamWriter(a); 
       w.Write(outputFile); 
       w.Flush(); 
       w.Close(); 
       break; 
      } 
      else 
      { 
       if (c == 0) 
       { 
        using (StreamReader sr = new StreamReader(a)) 
        { 
         while (sr.Peek() >= 0) 
         { 
          string grabLine = sr.ReadLine(); 
          if (grabLine.Contains("<div class=\"test-name\">Coded UI Test Log</div>")) 
          { 
           outputFile.AppendLine("<div class=\"test-name\">Test " + (c + 1).ToString() + "</div>"); 
          } 
          else 
          { 
           if (!grabLine.Contains("</body>") | !grabLine.Contains("</html>")) 
           { 
            outputFile.AppendLine(grabLine); 
           } 
          } 
         } 
        } 
       } 
       if (c != 0 && c != (endArg - 2)) 
       { 
        bool notYet = false; 
        using (StreamReader sr = new StreamReader(a)) 
        { 
         while (sr.Peek() >= 0) 
         { 
          string grabLine = sr.ReadLine(); 


          if (grabLine.Contains("<body>")) 
          { 
           notYet = true; 
          } 
          if (grabLine.Contains("<div class=\"test-name\">Coded UI Test Log</div>")) 
          { 
           outputFile.AppendLine("<div class=\"test-name\">Test " + (c + 1).ToString() + "</div>"); 
          } 
          else 
          { 
           if (notYet) 
           { 
            if (!grabLine.Contains("</body>") | !grabLine.Contains("</html>")) 
            { 
             outputFile.AppendLine(grabLine); 
            } 
           } 
          } 
         } 
        } 
       } 
       if (c == (endArg - 2)) 
       { 
        bool notYet = false; 
        using (StreamReader sr = new StreamReader(a)) 
        { 
         while (sr.Peek() >= 0) 
         { 
          string grabLine = sr.ReadLine(); 
          if (grabLine.Contains("<body>")) 
          { 
           notYet = true; 
          } 
          if (notYet) 
          { 
           if (grabLine.Contains("<div class=\"test-name\">Coded UI Test Log</div>")) 
           { 
            outputFile.AppendLine("<div class=\"test-name\">Test " + (c + 1).ToString() + "</div>"); 
           } 
           else 
           { 
            outputFile.AppendLine(grabLine); 
           } 
          } 
         } 
        } 
       } 
      } 
      c++; 
     } 
    } 
} 
संबंधित मुद्दे