web-dev-qa-db-ja.com

Junit結果のHTMLレポートを生成するにはどうすればよいですか?

テスト結果を含むHTMLレポートを(簡単に)生成する方法はありますか?現在、WebアプリのUIをテストするために、Seleniumに加えてJUnitを使用しています。

PS:プロジェクト構造を考えると、Ant :(を使用することになっていない

39
Andrei Ciobanu

couldAntを使用する場合、ここで詳細に説明するように、JUnitReportタスクを使用します。 http://ant.Apache.org/manual /Tasks/junitreport.html 、しかしあなたは質問であなたがAntを使うことになっていないと言った。タスクはXMLレポートをHTMLに変換するだけなので、XSLTプロセッサを使用して同様のレポートを生成することが可能だと思います。

または、TestNG( http://testng.org/doc/index.html )に切り替えることができます。これは、JUnitに非常に似ていますが、デフォルトのHTMLレポートと他のいくつかの便利な機能があります。

13
Dave Hunt

あるいは、Mavenビルドツールを使用している場合は、 Surefire Report というプラグインがあります。

レポートは次のようになります。 Sample

13
h3xStream

上記の回答は非常に便利ですが、実際には一般的な目的ではなく、AntやMavenなどの他の主要なビルドシステムが必要です。

何でも(ビルド、テスト、または自分から)呼び出すことができる簡単なワンショットコマンドでレポートを生成したかったので、ここにあるjunit2htmlを作成しました: https:// github。 com/inorton/junit2html

以下を実行してインストールできます。

pip install junit2html
12
IanNorton

これは、antを介して簡単に実行できます。これを行うためのbuild.xmlファイルを次に示します

 <project name="genTestReport" default="gen" basedir=".">
        <description>
                Generate the HTML report from JUnit XML files
        </description>

        <target name="gen">
                <property name="genReportDir" location="${basedir}/unitTestReports"/>
                <delete dir="${genReportDir}"/>
                <mkdir dir="${genReportDir}"/>
                <junitreport todir="${basedir}/unitTestReports">
                        <fileset dir="${basedir}">
                                <include name="**/TEST-*.xml"/>
                        </fileset>
                        <report format="frames" todir="${genReportDir}/html"/>
                </junitreport>
        </target>
</project>

これにより、TEST-*。xml形式のファイルが検索され、unitTestReportsという名前のフォルダーにレポートが生成されます。

これを実行するには(上記のファイルがbuildTestReports.xmlと呼ばれると仮定して)ターミナルで次のコマンドを実行します。

ant -buildfile buildTestReports.xml
11
RPM

Junit xml形式は、Java/Maven/Ant Wordの外部で使用されます。 http://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin のJenkinsは解決策です。

ワンショットソリューションについては、仕事をするこのツールを見つけました: https://www.npmjs.com/package/junit-viewer

junit-viewer --results=surefire-reports --save=file_location.html

--results=はxmlファイルのあるディレクトリです(テストレポート)

7

Selenium WebDriverスクリプトのHTMLレポートを生成するために利用できる複数のオプションがあります。

1。 JUNIT TestWatcherクラスを使用して、独自のSelenium HTMLレポートを作成します

TestWatcher JUNITクラスを使用すると、JUNITテストが失敗または合格したときに自動的に呼び出されるfailed()およびsuccessed()JUNITメソッドをオーバーライドできます。

TestWatcher JUNITクラスでは、次のメソッドをオーバーライドできます。

  • 保護されたvoidが失敗しました(スロー可能e、説明の説明)

failed()メソッドは、テストが失敗すると呼び出されます

  • protected void finished(説明の説明)

finished()メソッドは、テストメソッドが終了したときに呼び出されます(合格または失敗)

  • protected void skipped(AssumptionViolatedException e、説明の説明)

skipped()メソッドは、仮定が失敗したためにテストがスキップされたときに呼び出されます。

  • protected void starting(説明の説明)

starting()メソッドは、テストが開始されるときに呼び出されます

  • 保護されたvoid成功(説明の説明)

テストが成功すると、successed()メソッドが呼び出されます

この場合のサンプルコードを次に示します。

import static org.junit.Assert.assertTrue;
import org.junit.Test;

public class TestClass2 extends WatchManClassConsole {

    @Test public void testScript1() {
        assertTrue(1 < 2); >
    }

    @Test public void testScript2() {
        assertTrue(1 > 2);
    }

    @Test public void testScript3() {
        assertTrue(1 < 2);
    }

    @Test public void testScript4() {
        assertTrue(1 > 2);
    }
}
import org.junit.Rule; 
import org.junit.rules.TestRule; 
import org.junit.rules.TestWatcher; 
import org.junit.runner.Description; 
import org.junit.runners.model.Statement; 

public class WatchManClassConsole {

    @Rule public TestRule watchman = new TestWatcher() { 

        @Override public Statement apply(Statement base, Description description) { 
            return super.apply(base, description); 
        } 

        @Override protected void succeeded(Description description) { 
            System.out.println(description.getDisplayName() + " " + "success!"); 
        } 

        @Override protected void failed(Throwable e, Description description) { 
            System.out.println(description.getDisplayName() + " " + e.getClass().getSimpleName()); 
        }
    }; 
}

2。アリュールレポートフレームワークを使用する

アリュールフレームワークは、Selenium WebDriverプロジェクトのHTMLレポートの生成に役立ちます。

レポートフレームワークは非常に柔軟で、多くのプログラミング言語と単体テストフレームワークで動作します。

http://allure.qatools.ru/ でそれに関するすべてを読むことができます。

次の依存関係とプラグインをpom.xmlファイルに追加する必要があります

  1. メイブン・シュアファイア
  2. アスペクト
  3. アリュールアダプター

この記事のコードサンプルを含む詳細を参照してください: http://test-able.blogspot.com/2015/10/create-Selenium-html-reports-with-allure-framework.html

3
Alex Siminiuc

見つけました xunit-viewer 、非推奨junit-viewerが言及した @ daniel-kristof-kiss

非常にシンプルで、関連するすべてのファイルをANT Junit XML形式で自動的に再帰的に収集し、フィルタリングやその他の便利な機能を備えた単一のhtmlファイルを作成します。

Travisは標準形式のテスト結果出力の収集をサポートしていないため、Travisビルドからテスト結果をアップロードするために使用します。

1
thoni56