I have the following serenity.conf file in the directory src/test/resources:
# The webdriver property can be overwrite in the pom.xml file or in the command line
# Order of precedence:
# 1- @Managed annotation (in code) --> https://serenity-bdd.github.io/theserenitybook/latest/web-testing-in-serenity.html
# 2- @dirver annotation (in feature file) --> https://serenity-bdd.github.io/theserenitybook/latest/web-testing-in-serenity.html
# 3- Command line
# 4- pom.xml file
# 5- serenity.properties
# 6- serenity.conf
webdriver {
driver = firefox
}
drivers {
mac {
webdriver.chrome.driver = "src/test/resources/webdriver/mac/chromedriver-v76.0.3809.68-mac64"
webdriver.gecko.driver = "src/test/resources/webdriver/mac/geckodriver-v0.24.0-macos"
}
linux {
webdriver.chrome.driver = "src/test/resources/webdriver/linux/chromedriver-v76.0.3809.68-linux64"
webdriver.gecko.driver = "src/test/resources/webdriver/linux/geckodriver-v0.24.0-linux64"
}
}
environments {
default {
webdriver.base.url = "http://vmdev02:8083"
}
dev {
webdriver.base.url = "http://localhost:8083"
}
ci {
webdriver.base.url = "http://vmdev02:8083"
}
}
If I comment/delete the last part of the file (the environments configuration), everything works fine. If I execute my tests as it is now then I get the following stack trace:
net.thucydides.core.webdriver.DriverConfigurationError: Could not instantiate class org.openqa.selenium.firefox.FirefoxDriver
at net.thucydides.core.webdriver.WebDriverFacade.newDriverInstance(WebDriverFacade.java:144)
at net.thucydides.core.webdriver.WebDriverFacade.newProxyDriver(WebDriverFacade.java:132)
at net.thucydides.core.webdriver.WebDriverFacade.getProxiedDriver(WebDriverFacade.java:102)
at net.thucydides.core.webdriver.WebDriverFacade.get(WebDriverFacade.java:172)
at net.serenitybdd.core.pages.PageObject.openPageAtUrl(PageObject.java:902)
at net.serenitybdd.core.pages.PageObject.open(PageObject.java:803)
at net.serenitybdd.core.pages.PageObject.open(PageObject.java:791)
at de.idgard.test.dashboard.steps.selenide.LoginUserSteps.is_in_the_home_page(LoginUserSteps.java:14)
at de.idgard.test.dashboard.steps.selenide.LoginUserSteps$$EnhancerByCGLIB$$c1399401.CGLIB$is_in_the_home_page$4(<generated>)
at de.idgard.test.dashboard.steps.selenide.LoginUserSteps$$EnhancerByCGLIB$$c1399401$$FastClassByCGLIB$$108775ff.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at net.thucydides.core.steps.StepInterceptor.invokeMethod(StepInterceptor.java:461)
at net.thucydides.core.steps.StepInterceptor.executeTestStepMethod(StepInterceptor.java:446)
at net.thucydides.core.steps.StepInterceptor.runTestStep(StepInterceptor.java:421)
at net.thucydides.core.steps.StepInterceptor.runOrSkipMethod(StepInterceptor.java:176)
at net.thucydides.core.steps.StepInterceptor.testStepResult(StepInterceptor.java:163)
at net.thucydides.core.steps.StepInterceptor.intercept(StepInterceptor.java:69)
at de.idgard.test.dashboard.steps.selenide.LoginUserSteps$$EnhancerByCGLIB$$c1399401.is_in_the_home_page(<generated>)
at de.idgard.test.dashboard.steps.BackgroundSteps.i_am_logged_in_as_user(BackgroundSteps.java:31)
at ✽.I am logged in as 'user1'(src/test/resources/features/dashboard/accounts/Accounts.feature:27)
Caused by: net.thucydides.core.webdriver.DriverConfigurationError: Could not instantiate new WebDriver instance of type class org.openqa.selenium.firefox.FirefoxDriver (The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/geckodriver. The latest version can be downloaded from https://github.com/mozilla/geckodriver/releases). See below for more details.
at net.thucydides.core.webdriver.WebDriverFactory.newWebdriverInstance(WebDriverFactory.java:158)
at net.thucydides.core.webdriver.WebDriverFacade.newDriverInstance(WebDriverFacade.java:141)
at net.thucydides.core.webdriver.WebDriverFacade.newProxyDriver(WebDriverFacade.java:132)
at net.thucydides.core.webdriver.WebDriverFacade.getProxiedDriver(WebDriverFacade.java:102)
at net.thucydides.core.webdriver.WebDriverFacade.get(WebDriverFacade.java:172)
at net.serenitybdd.core.pages.PageObject.openPageAtUrl(PageObject.java:902)
at net.serenitybdd.core.pages.PageObject.open(PageObject.java:803)
at net.serenitybdd.core.pages.PageObject.open(PageObject.java:791)
at de.idgard.test.dashboard.steps.selenide.LoginUserSteps.is_in_the_home_page(LoginUserSteps.java:14)
at de.idgard.test.dashboard.steps.selenide.LoginUserSteps$$EnhancerByCGLIB$$c1399401.CGLIB$is_in_the_home_page$4(<generated>)
at de.idgard.test.dashboard.steps.selenide.LoginUserSteps$$EnhancerByCGLIB$$c1399401$$FastClassByCGLIB$$108775ff.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at net.thucydides.core.steps.StepInterceptor.invokeMethod(StepInterceptor.java:461)
at net.thucydides.core.steps.StepInterceptor.executeTestStepMethod(StepInterceptor.java:446)
at net.thucydides.core.steps.StepInterceptor.runTestStep(StepInterceptor.java:421)
at net.thucydides.core.steps.StepInterceptor.runOrSkipMethod(StepInterceptor.java:176)
at net.thucydides.core.steps.StepInterceptor.testStepResult(StepInterceptor.java:163)
at net.thucydides.core.steps.StepInterceptor.intercept(StepInterceptor.java:69)
at de.idgard.test.dashboard.steps.selenide.LoginUserSteps$$EnhancerByCGLIB$$c1399401.is_in_the_home_page(<generated>)
at de.idgard.test.dashboard.steps.BackgroundSteps.i_am_logged_in_as_user(BackgroundSteps.java:31)
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 cucumber.runtime.Utils$1.call(Utils.java:31)
at cucumber.runtime.Timeout.timeout(Timeout.java:16)
at cucumber.runtime.Utils.invoke(Utils.java:25)
at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:37)
at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:40)
at cucumber.api.TestStep.executeStep(TestStep.java:102)
at cucumber.api.TestStep.run(TestStep.java:83)
at cucumber.api.TestCase.run(TestCase.java:58)
at cucumber.runner.Runner.runPickle(Runner.java:80)
at cucumber.runtime.junit.PickleRunners$NoStepDescriptions.run(PickleRunners.java:140)
at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:68)
at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:23)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at cucumber.runtime.junit.FeatureRunner.run(FeatureRunner.java:73)
at cucumber.api.junit.Cucumber.runChild(Cucumber.java:118)
at cucumber.api.junit.Cucumber.runChild(Cucumber.java:56)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at cucumber.api.junit.Cucumber$1.evaluate(Cucumber.java:127)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
Caused by: java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/geckodriver. The latest version can be downloaded from https://github.com/mozilla/geckodriver/releases
at com.google.common.base.Preconditions.checkState(Preconditions.java:842)
at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:134)
at org.openqa.selenium.firefox.GeckoDriverService.access$100(GeckoDriverService.java:44)
at org.openqa.selenium.firefox.GeckoDriverService$Builder.findDefaultExecutable(GeckoDriverService.java:167)
at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:355)
at org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:190)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:147)
at net.serenitybdd.core.webdriver.driverproviders.FirefoxDriverProvider.lambda$newMarionetteDriver$0(FirefoxDriverProvider.java:70)
at net.serenitybdd.core.webdriver.driverproviders.ProvideNewDriver.withConfiguration(ProvideNewDriver.java:40)
at net.serenitybdd.core.webdriver.driverproviders.FirefoxDriverProvider.newMarionetteDriver(FirefoxDriverProvider.java:66)
at net.serenitybdd.core.webdriver.driverproviders.FirefoxDriverProvider.newInstance(FirefoxDriverProvider.java:52)
at net.thucydides.core.webdriver.WebDriverFactory.createWebDriver(WebDriverFactory.java:169)
at net.thucydides.core.webdriver.WebDriverFactory.newWebdriverInstance(WebDriverFactory.java:150)
... 59 more
As the stack trace says, it is like it is ignoring the values for the property webdriver.gecko.driver which must be set after Serenity interprets the "drivers" section of the configuration.
I also printed the variables and there I can see that the property webdriver.gecko.driver is not defined:
-- listing properties --
java.runtime.name=Java(TM) SE Runtime Environment
sun.boot.library.path=/usr/lib/jvm/java-8-oracle/jre/lib/amd64
java.vm.version=25.201-b09
drivers.mac.webdriver.chrome.driver=src/test/resources/webdriver/mac/chro...
java.vm.vendor=Oracle Corporation
java.vendor.url=http://java.oracle.com/
path.separator=:
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg=sun.io
user.country=US
sun.java.launcher=SUN_STANDARD
sun.os.patch.level=unknown
java.vm.specification.name=Java Virtual Machine Specification
serenity.project.name=Demo Project using Serenity and Cucumber
webdriver.driver=firefox
java.runtime.version=1.8.0_201-b09
java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
drivers.linux.webdriver.chrome.driver=src/test/resources/webdriver/linux/ch...
java.endorsed.dirs=/usr/lib/jvm/java-8-oracle/jre/lib/en...
os.arch=amd64
java.io.tmpdir=/tmp
line.separator=
java.vm.specification.vendor=Oracle Corporation
os.name=Linux
environments.ci.webdriver.base.url=http://vmdev02:8083
sun.jnu.encoding=UTF-8
java.library.path=/usr/java/packages/lib/amd64:/usr/lib...
java.specification.name=Java Platform API Specification
java.class.version=52.0
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
skipTests=false
os.version=4.15.0-55-generic
user.home=/home/francisco
user.timezone=Europe/Berlin
environments.default.webdriver.base.url=http://vmdev02:8083
java.awt.printerjob=sun.print.PSPrinterJob
java.specification.version=1.8
file.encoding=UTF-8
user.name=francisco
java.vm.specification.version=1.8
java.home=/usr/lib/jvm/java-8-oracle/jre
sun.arch.data.model=64
java.specification.vendor=Oracle Corporation
user.language=en
awt.toolkit=sun.awt.X11.XToolkit
java.vm.info=mixed mode
java.version=1.8.0_201
drivers.mac.webdriver.gecko.driver=src/test/resources/webdriver/mac/geck...
java.ext.dirs=/usr/lib/jvm/java-8-oracle/jre/lib/ex...
sun.boot.class.path=/usr/lib/jvm/java-8-oracle/jre/lib/re...
java.vendor=Oracle Corporation
localRepository=/home/francisco/.m2/repository
file.separator=/
environments.dev.webdriver.base.url=http://localhost:8083
java.vendor.url.bug=http://bugreport.sun.com/bugreport/
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
drivers.linux.webdriver.gecko.driver=src/test/resources/webdriver/linux/ge...
sun.desktop=gnome
sun.cpu.isalist=
I defined the property webdriver.gecko.driver in the file serenity.properties but still I get the same error. This error only happens by adding the environments configuration.
I can't reproduce this. What version are you using?
I am using the following dependencies:
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-core</artifactId>
<version>2.0.64</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-cucumber</artifactId>
<version>1.9.44</version>
<scope>test</scope>
</dependency>
Try with 2.0.67 and 1.9.45 (https://github.com/serenity-bdd/serenity-core/blob/master/README.md#what-is-the-latest-stable-version-i-should-use) and see if you are getting the same issue.
I changed the version numbers according to your suggestion:
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-core</artifactId>
<version>2.0.67</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-cucumber</artifactId>
<version>1.9.45</version>
<scope>test</scope>
</dependency>
I also changed the version number of the serenity-maven-plugin to the 2.0.67 (According to the link you provided):
<plugin>
<groupId>net.serenity-bdd.maven.plugins</groupId>
<artifactId>serenity-maven-plugin</artifactId>
<version>2.0.67</version>
<executions>
<execution>
<id>serenity-reports</id>
<phase>post-integration-test</phase>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
Now it takes the environment configuration into account (i.e: It uses the right webdriver.base.url) and it runs as expected, BUT ... At the end of the test run it gives the following error that makes the entire thing to fail despite all the test passed:
[ERROR] Failed to execute goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.0.67:aggregate (serenity-reports) on project dashboard-tests: Execution serenity-reports of goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.0.67:aggregate failed: No environment configuration found for environment 'dev' -> [Help 1]
Is very strange because I executed the test using the command line:
mvn clean verify -DskipTests=false -Denvironment=dev
And I can see in the browser that it is taking the right URL instead the default one, so obviously it is finding the environment "dev" and assigning the right value to the property webdriver.base.url
Could you run with --error?
I ran with the -X option this is the stack trace:
[ERROR] Failed to execute goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.0.67:aggregate (serenity-reports) on project dashboard-tests: Execution serenity-reports of goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.0.67:aggregate failed: No environment configuration found for environment 'dev' -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.0.67:aggregate (serenity-reports) on project dashboard-tests: Execution serenity-reports of goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.0.67:aggregate failed: No environment configuration found for environment 'dev'
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
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 serenity-reports of goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.0.67:aggregate failed: No environment configuration found for environment 'dev'
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:148)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
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: net.serenitybdd.core.environment.UnknownEnvironmentException: No environment configuration found for environment 'dev'
at net.serenitybdd.core.environment.EnvironmentSpecificConfiguration.ensureSpecifiedEnvironmentConfigurationExistsFor (EnvironmentSpecificConfiguration.java:160)
at net.serenitybdd.core.environment.EnvironmentSpecificConfiguration.environmentStrategyDefinedIn (EnvironmentSpecificConfiguration.java:133)
at net.serenitybdd.core.environment.EnvironmentSpecificConfiguration.<init> (EnvironmentSpecificConfiguration.java:66)
at net.serenitybdd.core.environment.EnvironmentSpecificConfiguration.from (EnvironmentSpecificConfiguration.java:125)
at net.thucydides.core.steps.FilePathParser.valueDefinedIn (FilePathParser.java:41)
at net.thucydides.core.steps.FilePathParser.getInstanciatedPath (FilePathParser.java:27)
at net.thucydides.core.configuration.SystemPropertiesConfiguration.loadOutputDirectoryFromSystemProperties (SystemPropertiesConfiguration.java:91)
at net.thucydides.core.configuration.SystemPropertiesConfiguration.getOutputDirectory (SystemPropertiesConfiguration.java:176)
at net.serenitybdd.maven.plugins.SerenityAggregatorMojo.configureOutputDirectorySettings (SerenityAggregatorMojo.java:127)
at net.serenitybdd.maven.plugins.SerenityAggregatorMojo.prepareExecution (SerenityAggregatorMojo.java:117)
at net.serenitybdd.maven.plugins.SerenityAggregatorMojo.execute (SerenityAggregatorMojo.java:183)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
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)
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :dashboard-tests
As the exception says the problem is in the goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.0.67:aggregate , by commenting the goal aggregate in the _pom.xml_ file, the test run smoothly and the error is not generated during the phase execution:
<plugin>
<groupId>net.serenity-bdd.maven.plugins</groupId>
<artifactId>serenity-maven-plugin</artifactId>
<version>2.0.67</version>
<executions>
<execution>
<id>serenity-reports</id>
<phase>post-integration-test</phase>
<goals>
<!-- <goal>aggregate</goal> -->
</goals>
</execution>
</executions>
</plugin>
Now the problem is that it does not generate the Serenity report.
IMHO the problem is in the plugin, during the aggregate phase. It looks like somehow it has no access to the environment variables as the other phases/goals.
Could you try with 2.0.68?
I have tried with 2.0.68 but it seems that the artifact is not ready.
[ERROR] Plugin net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.0.68 or one of its dependencies could not be resolved: Failure to find net.serenity-bdd.maven.plugins:serenity-maven-plugin:jar:2.0.68 in http://jcenter.bintray.com was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]
org.apache.maven.plugin.PluginResolutionException: Plugin net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.0.68 or one of its dependencies could not be resolved: Failure to find net.serenity-bdd.maven.plugins:serenity-maven-plugin:jar:2.0.68 in http://jcenter.bintray.com was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced
By using the version 2.0.67 of the serenity-maven-plugin and the dependencies:
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-core</artifactId>
<!-- <version>2.0.67</version> -->
<version>2.0.68</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-cucumber</artifactId>
<version>1.9.45</version>
<scope>test</scope>
</dependency>
I get the exact same result.
You will need to point to Bintray to get these artefacts: https://bintray.com/serenity
I changed the version numbers to use the following combination:
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-core</artifactId>
<!-- <version>2.0.67</version> -->
<version>2.0.68</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-cucumber</artifactId>
<!-- <version>1.9.45</version> -->
<version>1.9.46</version>
<scope>test</scope>
</dependency>
I also pointed out to the repositories to get the latest maven plugin version:
<plugin>
<groupId>net.serenity-bdd.maven.plugins</groupId>
<artifactId>serenity-maven-plugin</artifactId>
<!-- <version>2.0.67</version> -->
<version>2.0.68</version>
<executions>
<execution>
<id>serenity-reports</id>
<phase>post-integration-test</phase>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
But I get the exact same error, the tests runs smoothly, all test pass but then on the aggregate goal it fails:
[ERROR] Failed to execute goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.0.68:aggregate (serenity-reports) on project dashboard-tests: Execution serenity-reports of goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.0.68:aggregate failed: No environment configuration found for environment 'ci' -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.0.68:aggregate (serenity-reports) on project dashboard-tests: Execution serenity-reports of goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.0.68:aggregate failed: No environment configuration found for environment 'ci'
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
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 serenity-reports of goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:2.0.68:aggregate failed: No environment configuration found for environment 'ci'
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:148)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
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: net.serenitybdd.core.environment.UnknownEnvironmentException: No environment configuration found for environment 'ci'
at net.serenitybdd.core.environment.EnvironmentSpecificConfiguration.ensureSpecifiedEnvironmentConfigurationExistsFor (EnvironmentSpecificConfiguration.java:164)
at net.serenitybdd.core.environment.EnvironmentSpecificConfiguration.environmentStrategyDefinedIn (EnvironmentSpecificConfiguration.java:137)
at net.serenitybdd.core.environment.EnvironmentSpecificConfiguration.<init> (EnvironmentSpecificConfiguration.java:66)
at net.serenitybdd.core.environment.EnvironmentSpecificConfiguration.from (EnvironmentSpecificConfiguration.java:129)
at net.thucydides.core.ThucydidesSystemProperty.optionalPropertyValueDefinedIn (ThucydidesSystemProperty.java:1547)
at net.thucydides.core.ThucydidesSystemProperty.from (ThucydidesSystemProperty.java:1497)
at net.thucydides.core.ThucydidesSystemProperty.from (ThucydidesSystemProperty.java:1467)
at net.thucydides.core.requirements.PackageRequirementsTagProvider.<init> (PackageRequirementsTagProvider.java:66)
at net.thucydides.core.requirements.PackageRequirementsTagProvider.<init> (PackageRequirementsTagProvider.java:70)
at net.thucydides.core.statistics.service.JUnitTagProviderStrategy.getTagProviders (JUnitTagProviderStrategy.java:19)
at net.thucydides.core.statistics.service.ClasspathTagProviderService.allKnownTagProviders (ClasspathTagProviderService.java:90)
at net.thucydides.core.statistics.service.ClasspathTagProviderService.loadTagProvidersFromPath (ClasspathTagProviderService.java:54)
at net.thucydides.core.statistics.service.ClasspathTagProviderService.tagProvidersFor (ClasspathTagProviderService.java:36)
at net.thucydides.core.statistics.service.ClasspathTagProviderService.getTagProviders (ClasspathTagProviderService.java:28)
at net.thucydides.core.statistics.service.ClasspathTagProviderService.getTagProviders (ClasspathTagProviderService.java:18)
at net.thucydides.core.requirements.ClasspathRequirementsProviderService.loadRequirementsTagProviders (ClasspathRequirementsProviderService.java:49)
at net.thucydides.core.requirements.ClasspathRequirementsProviderService.getRequirementsProviders (ClasspathRequirementsProviderService.java:40)
at net.thucydides.core.requirements.DefaultRequirements.<init> (DefaultRequirements.java:25)
at net.thucydides.core.reports.html.HtmlAggregateStoryReporter.<init> (HtmlAggregateStoryReporter.java:95)
at net.thucydides.core.reports.html.HtmlAggregateStoryReporter.<init> (HtmlAggregateStoryReporter.java:76)
at net.thucydides.core.reports.html.HtmlAggregateStoryReporter.<init> (HtmlAggregateStoryReporter.java:63)
at net.serenitybdd.maven.plugins.SerenityAggregatorMojo.getReporter (SerenityAggregatorMojo.java:224)
at net.serenitybdd.maven.plugins.SerenityAggregatorMojo.generateHtmlStoryReports (SerenityAggregatorMojo.java:231)
at net.serenitybdd.maven.plugins.SerenityAggregatorMojo.execute (SerenityAggregatorMojo.java:186)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
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)
Can you try with 2.0.69?
Actually 2.0.70 might be better as it fixed some problems in 2.0.69 related to reading configuration.
The version 2.0.70 seems to have solved the problem. This is the combination of versions that is working for me:
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-core</artifactId>
<version>2.0.70</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-cucumber</artifactId>
<version>1.9.46</version>
<scope>test</scope>
</dependency>
And for the plugin is the 2.0.70:
<plugin>
<groupId>net.serenity-bdd.maven.plugins</groupId>
<artifactId>serenity-maven-plugin</artifactId>
<version>2.0.70</version>
<executions>
<execution>
<id>serenity-reports</id>
<phase>post-integration-test</phase>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
Most helpful comment
The version 2.0.70 seems to have solved the problem. This is the combination of versions that is working for me:
And for the plugin is the 2.0.70: