jenkinsci / allure-plugin

Allure Jenkins Plugin
https://plugins.jenkins.io/allure-jenkins-plugin/
Other
84 stars 66 forks source link

[2.26.0] NPE when trying to generate report #209

Open nreymundo opened 6 years ago

nreymundo commented 6 years ago

Issue

Context

Problem description

The Jenkins plugin seems unable to generate the report. This doesn't happen everytime but I haven't managed to narrow it down to a specific test case that might be wrong on our end or to a specific set of circumstances.

I'm not sure how much more details I can give since I don't really understand what's happening. The suite runs as expected and the test results are generated but when jenkins invokes the command line to create the report it just fails with a nullPointerException.

At first I thought there was an issue with some of our tests but after 20+ back-to-back runs I don't see a pattern. Around half the reports are correctly generated. The other half doesn't have any test fail that are common throughout all runs and even have a couple in which our 550+ tests all passed successfully but it still failed in the end.

Logs & Traces

Exception in thread "main" java.lang.NullPointerException
    at io.qameta.allure.allure2.Allure2Plugin.convert(Allure2Plugin.java:152)
    at io.qameta.allure.allure2.Allure2Plugin.lambda$convert$7(Allure2Plugin.java:179)
    at io.qameta.allure.allure2.Allure2Plugin$$Lambda$86/912672706.apply(Unknown Source)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
    at io.qameta.allure.allure2.Allure2Plugin.convert(Allure2Plugin.java:107)
    at io.qameta.allure.allure2.Allure2Plugin.convert(Allure2Plugin.java:179)
    at io.qameta.allure.allure2.Allure2Plugin.lambda$convert$8(Allure2Plugin.java:180)
    at io.qameta.allure.allure2.Allure2Plugin$$Lambda$87/1785397234.apply(Unknown Source)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
    at io.qameta.allure.allure2.Allure2Plugin.convert(Allure2Plugin.java:107)
    at io.qameta.allure.allure2.Allure2Plugin.convert(Allure2Plugin.java:180)
    at io.qameta.allure.allure2.Allure2Plugin.lambda$convert$4(Allure2Plugin.java:117)
    at io.qameta.allure.allure2.Allure2Plugin$$Lambda$97/1374754488.apply(Unknown Source)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
    at io.qameta.allure.allure2.Allure2Plugin.convert(Allure2Plugin.java:107)
    at io.qameta.allure.allure2.Allure2Plugin.convert(Allure2Plugin.java:117)
    at io.qameta.allure.allure2.Allure2Plugin.lambda$getBefore$14(Allure2Plugin.java:246)
    at io.qameta.allure.allure2.Allure2Plugin$$Lambda$96/1288235781.apply(Unknown Source)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
    at io.qameta.allure.allure2.Allure2Plugin.convert(Allure2Plugin.java:107)
    at io.qameta.allure.allure2.Allure2Plugin.getBefore(Allure2Plugin.java:246)
    at io.qameta.allure.allure2.Allure2Plugin.lambda$convert$2(Allure2Plugin.java:99)
    at io.qameta.allure.allure2.Allure2Plugin$$Lambda$95/1997353766.apply(Unknown Source)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267)
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
    at io.qameta.allure.allure2.Allure2Plugin.getStages(Allure2Plugin.java:240)
    at io.qameta.allure.allure2.Allure2Plugin.convert(Allure2Plugin.java:99)
    at io.qameta.allure.allure2.Allure2Plugin.lambda$readResults$0(Allure2Plugin.java:67)
    at io.qameta.allure.allure2.Allure2Plugin$$Lambda$71/1760126453.accept(Unknown Source)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
    at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
    at io.qameta.allure.allure2.Allure2Plugin.readResults(Allure2Plugin.java:67)
    at io.qameta.allure.ReportGenerator.lambda$readResults$0(ReportGenerator.java:32)
    at io.qameta.allure.ReportGenerator$$Lambda$35/873610597.accept(Unknown Source)
    at java.util.ArrayList.forEach(ArrayList.java:1249)
    at io.qameta.allure.ReportGenerator.readResults(ReportGenerator.java:32)
    at io.qameta.allure.ReportGenerator$$Lambda$32/902830499.apply(Unknown Source)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
    at io.qameta.allure.ReportGenerator.generate(ReportGenerator.java:54)
    at io.qameta.allure.ReportGenerator.generate(ReportGenerator.java:43)
    at io.qameta.allure.Commands.generate(Commands.java:89)
    at io.qameta.allure.CommandLine.run(CommandLine.java:129)
    at io.qameta.allure.CommandLine$$Lambda$1/1830712962.get(Unknown Source)
    at java.util.Optional.orElseGet(Optional.java:267)
    at io.qameta.allure.CommandLine.main(CommandLine.java:72)
ERROR: Build step failed with exception
ru.yandex.qatools.allure.jenkins.exception.AllurePluginException: Can not generate Allure Report, exit code: 1
    at ru.yandex.qatools.allure.jenkins.AllureReportPublisher.generateReport(AllureReportPublisher.java:296)
    at ru.yandex.qatools.allure.jenkins.AllureReportPublisher.perform(AllureReportPublisher.java:218)
    at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:81)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:754)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:700)
    at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1073)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:645)
    at hudson.model.Run.execute(Run.java:1749)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:429)
Build step 'Allure Report' marked build as failure
Notifying upstream projects of job completion
Finished: FAILURE
sajidvit340 commented 3 years ago

Any update on this issue?