2017-05-04 19 views
1

私は、Android Studioでユニットテストのセット(同様のIntelliJ IDEAに適用される)、その後、私は、このダイアログを使用してテスト結果をエクスポートすることができています実行している場合:私は、「エクスポート形式を選択した場合Android Studio JUnitテストの実行にカスタムXSLテンプレートを適用するにはどうすればよいですか?

export test results dialog

を非常によく、すべてである

test report html

:/ HTMLは、」私はこのようなレンダリングファイルを取得します。しかし、テストレポートをWordファイルにテンプレートで提示する必要があるという要件があります。ブラウザにデフォルトのHTMLをコピー/ペーストすると、HTMLが複雑すぎてWordが正しく処理されないように見えます。

result of copying into Word

私は、Word/Excelにコピーして、報告書の一部として含めることができる試験報告書のプレーンテキスト表現のいくつかの種類が必要です。

上記のダイアログボックスにあるように、オプションの1つはXSLテンプレートを適用して結果を生成することです。 JUnitユニットのテストレポートを簡単にコピー/貼り付けできるようにするためのXSLテンプレートを作成したいと思います。 Android StudioまたはIntelliJ IDEAではデフォルトでXSLテンプレートが提供されていません。

私は縮小さJUnitテストレポートのためのXMLをエクスポートする場合、それは次のようになります。

<?xml version="1.0" encoding="UTF-8"?><testrun duration="1" footerText="Generated by Android Studio on 4/05/17 12:43 PM" name="myapplication in app"> 
    <count name="total" value="3"/> 
    <count name="passed" value="3"/> 
    <config nameIsGenerated="true" configId="AndroidJUnit" name="myapplication in app"> 
     <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea"/> 
     <module name="app"/> 
     <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false"/> 
     <option name="ALTERNATIVE_JRE_PATH"/> 
     <option name="PACKAGE_NAME"/> 
     <option name="MAIN_CLASS_NAME"/> 
     <option name="METHOD_NAME"/> 
     <option name="TEST_OBJECT" value="directory"/> 
     <option name="VM_PARAMETERS"/> 
     <option name="PARAMETERS"/> 
     <option name="WORKING_DIRECTORY"/> 
     <option name="ENV_VARIABLES"/> 
     <option name="PASS_PARENT_ENVS" value="true"/> 
     <option name="TEST_SEARCH_SCOPE"> 
      <value defaultName="singleModule"/> 
     </option> 
     <envs/> 
     <dir value="/Users/example/AndroidStudioProjects/MyApplication5/app/src/test/java/com/example/myapplication"/> 
     <patterns/> 
    </config> 
    <root name="&lt;default package&gt;" location="java:suite://&lt;default package&gt;"/> 
    <suite duration="1" locationUrl="java:suite://com.example.myapplication.ArithmeticTest" name="ArithmeticTest" status="passed"> 
     <test duration="1" locationUrl="java:test://com.example.myapplication.ArithmeticTest.multiplication_isCorrect" name="ArithmeticTest.multiplication_isCorrect" status="passed"/> 
     <test duration="0" locationUrl="java:test://com.example.myapplication.ArithmeticTest.addition_isCorrect" name="ArithmeticTest.addition_isCorrect" status="passed"/> 
    </suite> 
    <suite duration="0" locationUrl="java:suite://com.example.myapplication.StringTest" name="StringTest" status="passed"> 
     <test duration="0" locationUrl="java:test://com.example.myapplication.StringTest.concatenation_isCorrect" name="StringTest.concatenation_isCorrect" status="passed"/> 
    </suite> 
</testrun> 

質問: 私は非常にXMLの変換を取得するために適用することができXSLテンプレートとは何ですか会社のWordファイルにコピー/ペーストできるプレーンHTML?

注:自己回答質問として提示したが、他の答えは歓迎されている。これは時間の制約とXSLの知識の私の不足与えられた私の最高の試みである

+0

関連性が低く、ローカライズされています(5歳、おそらくJUnitの以前のバージョン用):http://stackoverflow.com/questions/9470060/what-xslt-converts-junit-xml-format-to- junit-plain-format –

答えて

0

良質場合は受け付けられます。

<?xml version="1.0"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/"> 
    <html> 
     <body> 
     <table border="1" style="width:100%"> 
      <th>TestRun</th> 
      <th>Total</th> 
      <th>Passed</th> 
      <tr> 
      <td> 
       <xsl:value-of select="concat(testrun/@name, ' - ', testrun/@footerText)"/> 
      </td> 
      <td> 
       <xsl:value-of select="testrun/count[1]/@value"/> 
      </td> 
      <td> 
       <xsl:value-of select="testrun/count[2]/@value"/> 
      </td> 
      </tr> 
     </table> 
     <xsl:for-each select="testrun/suite"> 
      <table border="1" style="width:100%"> 
      <th> 
       <xsl:value-of select="@name"/> 
      </th> 
      <th></th> 
      <th></th> 
      <xsl:for-each select="test"> 
       <tr> 
       <td> 
        <xsl:value-of select="@name"/> 
       </td> 
       <td> 
        <xsl:value-of select="@duration"/>ms</td> 
       <td> 
        <xsl:value-of select="@status"/> 
       </td> 
       </tr> 
      </xsl:for-each> 
      </table> 
     </xsl:for-each> 
     </body> 
    </html> 
    </xsl:template> 
</xsl:stylesheet> 

必要に応じて、Officeにコピーして貼り付けることができる非常に基本的なHTMLを生成します。

関連する問題