2016-07-17 8 views
0

テストの実行中にレポートを生成することは可能ですか? 合格 は実行時の偶発性bdd世代レポート

私のpom.xmlをPanding、私はその後、私のレポートは、テスト前に生成<phase>pre-integration-test</phase><phase>post-integration-test</phase>を設定した場合、この

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 


    <modelVersion>4.0.0</modelVersion> 


    <groupId>com.insurance.abc</groupId> 
    <artifactId>insurance</artifactId> 
    <version>1.0-SNAPSHOT</version> 



    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
    </properties> 



    <dependencies> 

     <dependency> 
      <groupId>net.serenity-bdd</groupId> 
      <artifactId>serenity-jbehave</artifactId> 
      <version>1.13.0</version> 
     </dependency> 

     <dependency> 
      <groupId>net.serenity-bdd</groupId> 
      <artifactId>serenity-core</artifactId> 
      <version>1.1.37-rc.6</version> 
     </dependency> 

    </dependencies> 



    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>build-helper-maven-plugin</artifactId> 
       <version>1.9.1</version> 
       <!--<executions> 
        <execution> 
         <id>add-integration-test-source-as-test-sources</id> 
         <phase>generate-test-sources</phase> 
         <goals> 
          <goal>add-test-source</goal> 
         </goals> 
         <configuration> 
          <sources> 
           <source>src/it/java</source> 
          </sources> 
         </configuration> 
        </execution> 
       </executions>--> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-failsafe-plugin</artifactId> 
       <version>2.18</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>integration-test</goal> 
          <goal>verify</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>net.serenity-bdd.maven.plugins</groupId> 
       <artifactId>serenity-maven-plugin</artifactId> 
       <version>1.1.37-rc.6</version> 
       <dependencies> 
        <dependency> 
         <groupId>net.serenity-bdd</groupId> 
         <artifactId>serenity-core</artifactId> 
         <version>1.1.37-rc.6</version> 
        </dependency> 
       </dependencies> 
       <executions> 
        <execution> 
         <phase>post-integration-test</phase> 
         <goals> 
          <goal>aggregate</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

のように見え、これがそれです。レポートにテストはありません。 理由を説明するのを助けてもらえますか?

答えて

0

あなたが見ている動作の理由はかなり簡単です。テストが実行されているときに、target/jbehave/に各テストの結果をstoryclass.htmlstoryclass.statsとして保存します。レポートの生成が実行されると、それらのファイルを消費してtarget/jbehave/reportsの下にレポートを生成します。テストを実行する前にレポートを生成しようとすると、入力がないレポートが生成されます。

希望の結果を達成する方法に関して、私はJbehaveによって提供された正式な方法はないと思います。

にはが必要な場合は、記事生成が完了するたびにレポート生成を実行する@AfterStoryステップを追加することから始めます。この問題は、たとえうまくいきましたが、これが起こるたびに、レポート全体が再生成され、テストスイートで各ストーリーが実行されてゆっくりと遅くなります。大きなスイートを使用すると、あなたの実行時間に。その後、それをさらに進めて、あなたのステップにカスタム軽量レポート生成をさせて、一時的なステータスレポートを追加して、Jbehaveの実行後に生成された完全なレポートで置き換えることができるレポートを再作成することができます。