当前位置: 首页 > 知识库问答 >
问题:

在最新的5.3.0版本中,maven-cucumber报告插件没有生成报告

袁单鹗
2023-03-14

从github复制粘贴maven cucumber报告的代码后,报告不会在目标文件夹中生成。我不确定丢了什么。我试着用Runner类和MVN控制台运行,结果都没有在目标文件夹中生成报告

POM文件

<?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>MavenWeb</groupId>
    <artifactId>Coderio_Demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <name>Coderio_Demo</name>
    <!-- FIXME change it to the project's website -->
    <url>http://www.example.com</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>

        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.141.59</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-java -->
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>6.4.0</version>
        </dependency>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>6.4.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-picocontainer -->
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-picocontainer</artifactId>
            <version>6.4.0</version>
            <scope>test</scope>
        </dependency>



        <dependency>
            <groupId>io.github.bonigarcia</groupId>
            <artifactId>webdrivermanager</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
            <groupId>de.monochromata.cucumber</groupId>
            <artifactId>reporting-plugin</artifactId>
            <version>4.0.56</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-core -->
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-core</artifactId>
            <version>6.4.0</version>
        </dependency>


    </dependencies>

    <build>
        <pluginManagement><!-- lock down plugins versions to avoid using Maven 
                defaults (may be moved to parent pom) -->
            <plugins>
                <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.18.1</version>
                    <configuration>
                        <testFailureIgnore>true</testFailureIgnore>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>net.masterthought</groupId>
                    <artifactId>maven-cucumber-reporting</artifactId>
                    <version>5.3.0</version>

                    <executions>
                        <execution>
                            <id>execution</id>
                            <phase>verify</phase>
                            <goals>
                                <goal>generate</goal>
                            </goals>
                            <configuration>
                                <projectName>cucumber-jvm-example</projectName>
                                <!-- optional, per documentation set this to "true" to bypass generation 
                                    of Cucumber Reports entirely, defaults to false if not specified -->
                                <skip>false</skip>
                                <!-- output directory for the generated report -->
                                <outputDirectory>target/customizereports/</outputDirectory>
                                <!-- optional, defaults to outputDirectory if not specified -->
                                <inputDirectory>target/cucumber-reports/cucumber.json</inputDirectory>
                                <jsonFiles>
                                    <!-- supports wildcard or name pattern -->
                                    <param>**/*.json</param>
                                </jsonFiles>
                                <!-- optional, defaults to outputDirectory if not specified -->
                                <classificationDirectory>${project.build.directory}/classifications</classificationDirectory>
                                <classificationFiles>
                                    <!-- supports wildcard or name pattern -->
                                    <param>sample.properties</param>
                                    <param>other.properties</param>
                                </classificationFiles>
                                <parallelTesting>false</parallelTesting>
                                <!-- optional, set true to group features by its Ids -->
                                <mergeFeaturesById>false</mergeFeaturesById>
                                <!-- optional, set true to get a final report with latest results 
                                    of the same test from different test runs -->
                                <mergeFeaturesWithRetest>false</mergeFeaturesWithRetest>
                                <!-- optional, set true to fail build on test failures -->
                                <checkBuildResult>true</checkBuildResult>
                            </configuration>
                        </execution>
                    </executions>


                </plugin>

            </plugins>
        </pluginManagement>
    </build>
</project>

和这个我的跑步者文件

package testRunner;

import org.junit.runner.RunWith;

//import cucumber.api.CucumberOptions;
import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
//import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)
@CucumberOptions(features = "src/test/java/Features/", plugin = { "json:target/cucumber-reports/cucumber.json",
        "pretty", "html:target/html-report/cucumber-html-reports.html",
        "junit:target/cucumber-reports/cucumber.xml" }, glue = {
                "StepDefination" }, tags = "@LogOut1wwww1", monochrome = true)
public class TestRunner {


}

我运行了mvn以进行清理和验证

测试用例被执行,但是没有生成报告


共有1个答案

长孙阳泽
2023-03-14

将 pom.xml 中的构建部分更改为此

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.18.1</version>
        <configuration>
          <testFailureIgnore>true</testFailureIgnore>
        </configuration>
      </plugin>
      <plugin>
        <groupId>net.masterthought</groupId>
        <artifactId>maven-cucumber-reporting</artifactId>
        <version>5.3.0</version>
        <executions>
          <execution>
            <id>report</id>
            <phase>integration-test</phase>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/cucumber-reports</outputDirectory>
              <jsonFiles>
                <jsonFile>**/*.json</jsonFile>
              </jsonFiles>
              <mergeFeaturesWithRetest>true</mergeFeaturesWithRetest>
              <mergeFeaturesById>true</mergeFeaturesById>
              <checkBuildResult>false</checkBuildResult>
              <skipEmptyJSONFiles>true</skipEmptyJSONFiles>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

 类似资料:
  • 我被要求并行运行cucumber测试(通过使用maven surefire多个jvms,forkCount)-结果报告相当于通过顺序运行测试创建的报告。 我使用的是cucumberv3。cucumberv4允许使用一个带有组合结果报告的单一运行器并行运行测试——但是我对v4的尝试并没有使我能够使用一个运行器运行多个JVM/生成一个报告。 您能否澄清/建议是否有一种替代/更简单的方法来解决以下问题?

  • 我们正在使用cucumberjvm并行插件自动生成cucumber运行程序。 它会根据跑步者的数量在-1、2、3等文件夹中生成cucumber报告。a) 我想把这些报告合并成一份。b) 正如下面链接中所建议的,我已经配置了一个设置,但它并没有生成数据块报告https://github.com/temyers/cucumber-jvm-parallel-plugin/tree/master/src/

  • 请找到我的pom.xml 4.0.0 @runwith(cucumber.class)@cucumberoptions(features={“c:\users\rishabh patel\eclipse-workspace\cucumberreports\feature”},glue={“stepdefinition”},plugin={“pretty”,“json:target/cucumber

  • 我正在AWS Codebuild/Codedeploy上运行测试,测试完成后,会生成一个Surefire HTML文件,但它是空的。当我在IntelliJ上本地运行测试时(不是通过MVN运行),各种JSON和XML测试报告都可以很好地创建。我完全无法理解为什么在IntelliJ上本地运行时会发生这种情况,而在AWS上通过MVN运行时会返回一个空报告。我完全被这件事困住了。 波姆。XML: 建筑规范

  • 问题内容: 我正在使用詹金斯(Jenkins)来进行将maven与黄瓜配合使用的工作。我的工作顺利进行。我还用jenkins管理了插件Cucumber报告。但是当我查看报告时,我收到如下图所示的消息。 我尝试安装各种插件,例如Jenkins插件,独立但没有任何乐趣。这些在选项的右下方显示为选项。 任何线索都是有帮助的。我也尝试过检查stackover流中的此错误。我没有任何线索 我可以看到由sur

  • 我的POM现在看起来像, 这将生成一个报告,但仅使用最后一个功能。我有多个跑步者,所以我试图找出: A.如何将多个JSON组合成一个报告或 B.当每个测试完成时,我如何附加到一个JSON文件上? 这两种方法似乎都是可行的解决方案,但我更喜欢一种,因为我在pom.xml中似乎只遗漏了一行,因为我目前已经生成了多个JSON文件