2013-06-06 12 views
8

のVisual Studio 2012年に私のコード化されたUIテストを実行した後、私はテストの結果は、HTMLファイルに記録されるように望んでいました。 thisチュートリアルの後、私はこれを達成することができました。コード化されたUIテストのHTMLログを結合しますか?

残念ながら、すべての単一のテストは、独自のHTMLレポートは、現在、私は、3つの異なる個々のテストを持っており、それぞれが..\TestResults\<Test Run Folder>\In\

得られた各HTMLファイルに独自のフォルダを取得し、..\TestResults\<Test Run Folder>\In\<Individual Test Log Folder>\<PC Name>\UITestActionLog.htmlで取得するには、次のようになります。

enter image description here

は、私が欲しいのは、すべての3つのHTMLファイルを一つに結合させるためである、とだけではなく、

のそれは

>テスト1

>テスト2

>テスト3

ようになる

>テスト1

はこれを行う方法はありますいくつかの設定オプションで自動的に、または私はすべてのHTMLファイルをマージするプログラムを書き留めています。自己?

+0

私はこれを使用してHTMLファイルをマージすると言うでしょう。これは私が過去に使ったことです。 http://softsnow.griffin3.com/merger/merger.shtml – adaam

+0

HTMLがXHML準拠の場合、すべての* .htmlを繰り返し処理する小さなC#アプリケーションを作成し、linq2xmlを使用してデータを抽出することができます。 – tofi9

+0

@taoufikこれは.XMLファイルを生成するように聞こえますが、最終的な結果は.HTMLファイルになることをお勧めします。 –

答えて

2

は、自分で解決策を考え出した各HTMLログから​​ノードを取り、単一のHTMLファイルにそれらを結合するプログラムを書きました。魅力のように動作します。

+2

を読むことができます。そのプログラムをアップロードすることは可能でしょうか、それは本当に役に立ちます。 – matthiasgh

1

私も自分自身のソリューションを書きました。 HTMLアジリティパックを使用して1時間を過ごした後に、HTML5の埋め込み画像で時折見付かってしまうことを発見した。 ">、<"

私は単に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++; 
     } 
    } 
} 
関連する問題