2017-09-07 76 views
0

我使用在我的POM中配置的allure-maven插件。然而,当它失败如何调试Maven插件?

ru.yandex.qatools.allure.data.ReportGenerationException: Could not find any allure results 

我想在运行时调试插件,看看它是否有正确设置所有变量。

我试图根据Debugging in Maven?的答案使用mvnDebug。当Maven使用surefire插件执行测试时,我能够将调试器连接到JVM。但是,当Maven试图用魅力插件生成Allure报告时,我无法与调试器连接。 Allure插件在POM的“报告”部分中定义,并由“站点”Maven目标使用。

这里是我用mvn clean test site命令调用的POM(几乎完整,我ommited的依赖节)。

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

    ... 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.20</version> 
       <configuration> 
        <testFailureIgnore>true</testFailureIgnore> 
        <argLine>-Xmx2048m -XX:-UseSplitVerifier -XX:MaxPermSize=256m 
         -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar 
        </argLine> 
        <properties> 
         <property> 
          <name>parallel</name> 
          <value>classes</value> 
         </property> 
         <property> 
          <name>threadcount</name> 
          <value>4</value> 
         </property> 
        </properties> 
       </configuration> 
       <dependencies> 
        <dependency> 
         <groupId>org.aspectj</groupId> 
         <artifactId>aspectjweaver</artifactId> 
         <version>${aspectj.version}</version> 
        </dependency> 
       </dependencies> 
      </plugin> 
     </plugins> 
    </build> 


    <reporting> 
     <excludeDefaults>true</excludeDefaults> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-report-plugin</artifactId> 
       <version>2.19.1</version> 
      </plugin> 
      <plugin> 
       <groupId>io.qameta.allure</groupId> 
       <artifactId>allure-maven</artifactId> 
       <version>2.8</version> 
       <configuration> 
       </configuration> 
      </plugin> 
     </plugins> 
    </reporting> 

    <pluginRepositories> 
     <pluginRepository> 
      <id>mvn-nexus-all</id> 
      <url>https://lunabuild.akamai.com/nexus/content/groups/public/</url> 
      <snapshots> 
       <enabled>false</enabled> 
      </snapshots> 
     </pluginRepository> 
    </pluginRepositories> 
</project> 

下面是从失败的插件全堆栈跟踪:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.3:site (default-site) on project sso-config-tests: Error during page generation: Error rendering Maven report: Could not generate the report: InvocationTargetException: Could not find any allure results -> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.3:site (default-site) on project sso-config-tests: Error during page generation 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) 
     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) 
     at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 
     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 
     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) 
     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) 
     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) 
     at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862) 
     at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286) 
     at org.apache.maven.cli.MavenCli.main(MavenCli.java:197) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:497) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 
Caused by: org.apache.maven.plugin.MojoExecutionException: Error during page generation 
     at org.apache.maven.plugins.site.SiteMojo.execute(SiteMojo.java:143) 
     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) 
     ... 20 more 
Caused by: org.apache.maven.doxia.siterenderer.RendererException: Error rendering Maven report: Could not generate the report 
     at org.apache.maven.plugins.site.ReportDocumentRenderer.renderDocument(ReportDocumentRenderer.java:233) 
     at org.apache.maven.doxia.siterenderer.DefaultSiteRenderer.renderModule(DefaultSiteRenderer.java:319) 
     at org.apache.maven.doxia.siterenderer.DefaultSiteRenderer.render(DefaultSiteRenderer.java:135) 
     at org.apache.maven.plugins.site.SiteMojo.renderLocale(SiteMojo.java:175) 
     at org.apache.maven.plugins.site.SiteMojo.execute(SiteMojo.java:138) 
     ... 22 more 
Caused by: org.apache.maven.reporting.MavenReportException: Could not generate the report 
     at ru.yandex.qatools.allure.report.AllureGenerateMojo.executeReport(AllureGenerateMojo.java:127) 
     at org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:255) 
     at org.apache.maven.plugins.site.ReportDocumentRenderer.renderDocument(ReportDocumentRenderer.java:219) 
     ... 26 more 
Caused by: java.lang.reflect.InvocationTargetException 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:497) 
     at ru.yandex.qatools.allure.report.AllureGenerateMojo.executeReport(AllureGenerateMojo.java:123) 
     ... 28 more 
Caused by: ru.yandex.qatools.allure.data.ReportGenerationException: Could not find any allure results 
     at ru.yandex.qatools.allure.data.AllureReportGenerator.generate(AllureReportGenerator.java:58) 
     at ru.yandex.qatools.allure.data.AllureReportGenerator.generate(AllureReportGenerator.java:53) 
     at ru.yandex.qatools.allure.AllureMain.main(AllureMain.java:48) 
     ... 33 more 
+0

插件定义您想要调试的地方? – khmarbaise

+0

@khmarbaise插件是在POM文件中定义的。 – dzieciou

+0

在哪个pom文件?我没有看到maven-surefire-plugin等,但我认为我没有看到你喜欢运行测试的插件?此外,一个完整的pom文件或更好的完整的示例项目,例如在github上将有助于更多地了解问题是什么? – khmarbaise

回答

1

如果用“mvnDebug干净安装”,而不是“人干净安装” Maven会等待远程调试器连接开始您的构建在端口8000上。这应该适用于所有不能在自己的JVM中运行的插件。

这需要Maven更大> 2.0.8,我假设你正在运行。

Debugging in Maven?

+0

不幸的是,它并没有停止在连接到插件后的中断点。是的,我正在使用Maven 3.3。1 – dzieciou

+0

你确定你有确切的插件来源吗?我建议你在课堂上设置一个断点。 – fhossfel

+0

我在课堂上设置了中断点。 Maven进程失败,出现JDWP退出错误JVMTI_ERROR_WRONG_PHASE(112):获取类状态[util.c:1285] JDWP退出错误JVMTI_ERROR_INVALID_ENVIRONMENT(116):无法分配jvmti内存[util.c:1799]错误:JDWP无法处理JVMTI环境:JVMTI_ERROR_INVALID_ENVIRONMENT(116)原生方法中的致命错误:JDWP无法分配jvmti内存,jvmtiError = JVMTI_ERROR_INVALID_ENVIRONMENT(116)/ usr/local/bin/mvnDebug:第41行:16470中止陷阱:6 env MAVEN_OPTS = “$ MAVEN_OPTS $ MAVEN_DEBUG_OPTS”$(dirname $ 0)/ mvn“$ @”' – dzieciou

0

而不是allure-maven插件调试,您可能需要先解决配置问题。你已经把插件插入错误的POM的部分。查看官方插件的docs

倾城2不使用报告部分了。您应该将插件放入构建部分。

报告生成命令也被更新。取而代之的是site目标调用的,你应该使用下列内容:

mvn allure:report 
mvn allure:serve 

检查this例如,以获取有关有效配置的想法。