2013-06-06 36 views
8

Sau khi chạy kiểm tra giao diện người dùng Coded của tôi trong Visual Studio 2012, tôi muốn kết quả kiểm tra được ghi vào tệp HTML. Sau khi theo dõi this hướng dẫn tôi đã có thể đạt được điều này.Kết hợp Nhật ký HTML kiểm tra giao diện người dùng được mã hóa?

Thật không may, mỗi thử nghiệm duy nhất được báo cáo HTML riêng của mình tại ..\TestResults\<Test Run Folder>\In\<Individual Test Log Folder>\<PC Name>\UITestActionLog.html, hiện nay tôi có 3 bài kiểm tra cá nhân khác nhau và mỗi được thư mục riêng của mình tại ..\TestResults\<Test Run Folder>\In\

Mỗi kết quả tập tin HTML trông như thế này:

enter image description here

Điều tôi muốn là cho tất cả 3 tệp HTML được kết hợp thành một và thay vì chỉ

> Kiểm tra 1

nó sẽ giống như

> Test 1

> Test 2

> Kiểm tra 3

Có cách nào để làm điều này tự động với một số tùy chọn cấu hình hoặc tôi bị kẹt viết chương trình để hợp nhất tất cả các tệp HTML của tôi tự?

+0

Tôi muốn nói sử dụng điều này để hợp nhất các tệp HTML, đó là những gì tôi đã sử dụng trong quá khứ. http://softsnow.griffin3.com/merger/merger.shtml – adaam

+0

Nếu HTML tuân thủ XHML, bạn có thể viết một ứng dụng C# nhỏ lặp qua tất cả * .html và sử dụng linq2xml để trích xuất dữ liệu. – tofi9

+0

@taoufik có vẻ như nó sẽ dẫn đến tệp .XML, tôi muốn kết quả cuối cùng là tệp .HTML kết hợp –

Trả lời

2

Đã tìm ra giải pháp một mình, đã viết chương trình để thực hiện các nút <div class="g"> từ mỗi nhật ký HTML và kết hợp chúng thành một tệp HTML duy nhất. Làm việc như một say mê.

+2

Có thể tải lên chương trình đó không, nó sẽ thực sự hữu ích đối với tôi. – matthiasgh

1

Tôi cũng đã viết giải pháp của riêng mình. Sau khi chi tiêu một giờ bằng gói nhanh nhẹn HTML và đôi khi phát hiện ra nó bị hỏng với hình ảnh được nhúng HTML5, ví dụ: ">, <".

Tôi chỉ đơn giản là viết một ứng dụng console phân tích các HTMLs, và kết hợp thành 1:

cmd ActionLogBuilder inputfile's.html outputfile.html

(nó rất thô, nhưng hoạt động)

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++; 
     } 
    } 
} 
Các vấn đề liên quan