serenity-bdd / serenity-maven-plugin

19 stars 21 forks source link

Aggregate goal without a pom #84

Open lionelve opened 2 years ago

lionelve commented 2 years ago

I'm trying to aggregate the tests results from multiple projects. Each of those projects have their own pom and run fine. There is no project really aggregating them all so I figured I could run the goal without a pom.

The aggregator mojo has the requiresProject property set to false:

https://github.com/serenity-bdd/serenity-maven-plugin/blob/b8e1273aa224604f01f6d2b0e9d611291a5a21ad/src/main/java/net/serenitybdd/maven/plugins/SerenityAggregatorMojo.java#L33

If I understand things correctly this implies that the goal can be executed without having a pom file. However, this fails with a NullPointerException from:

https://github.com/serenity-bdd/serenity-maven-plugin/blob/b8e1273aa224604f01f6d2b0e9d611291a5a21ad/src/main/java/net/serenitybdd/maven/plugins/MavenProjectHelper.java#L25.

I'm executing the goal like this

mvn -B -Dserenity.outputDirectory=target/site/serenity -X net.serenity-bdd.maven.plugins:serenity-maven-plugin:aggregate

The full error is this:

[ERROR] Failed to execute goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.6.0:aggregate (default-cli) on project standalone-pom: Execution default-cli of goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.6.0:aggregate failed. NullPointerException -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.6.0:aggregate (default-cli) on project standalone-pom: Execution default-cli of goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.6.0:aggregate failed. at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) 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:863) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) 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:498) 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.PluginExecutionException: Execution default-cli of goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.6.0:aggregate failed. at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) ... 20 more Caused by: java.lang.NullPointerException at net.serenitybdd.maven.plugins.MavenProjectHelper.propagateBuildDir(MavenProjectHelper.java:25) at net.serenitybdd.maven.plugins.SerenityAggregatorMojo.prepareExecution(SerenityAggregatorMojo.java:121) at net.serenitybdd.maven.plugins.SerenityAggregatorMojo.execute(SerenityAggregatorMojo.java:190) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) ... 21 more

If this is not meant to work without a pom should requiresProject be true?