1

I have a project which does some selenium tests. The tests are located in "src/test/java" folder. When I try to build the project with maven (option: clean install) I get a build error.

But when I rename the folder to "src/testExec/java" or to any other path which is different from "src/test/java" the build proccess completes wihtout an error.

Why? I would like to keep the standard naming convention "src/test/java".

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.215s
[INFO] Finished at: Thu Apr 16 09:32:46 CEST 2015
[INFO] Final Memory: 30M/72M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test (default-test) on project variant: There are test failures.
[ERROR] 
[ERROR] Please refer to C:\Users\cschneid\Desktop\Projekt\workspaceCalc\Calculator\CalculatorModuleMain\target\surefire-reports for the individual test results.
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test (default-test) on project variant: There are test failures.

Please refer to C:\Users\cschneid\Desktop\Projekt\workspaceCalc\Calculator\CalculatorModuleMain\target\surefire-reports for the individual test results.
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
    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:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.MojoFailureException: There are test failures.

Please refer to C:\Users\cschneid\Desktop\Projekt\workspaceCalc\Calculator\CalculatorModuleMain\target\surefire-reports for the individual test results.
    at org.apache.maven.plugin.surefire.SurefireHelper.reportExecution(SurefireHelper.java:87)
    at org.apache.maven.plugin.surefire.SurefirePlugin.writeSummary(SurefirePlugin.java:641)
    at org.apache.maven.plugin.surefire.SurefirePlugin.handleSummary(SurefirePlugin.java:615)
    at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:137)
    at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:98)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
    ... 19 more
[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/MojoFailureException

At location "C:\Users\cschneid\Desktop\Projekt\workspaceCalc\Calculator\CalculatorModuleMain\target\surefire-reports" is:

-------------------------------------------------------------------------------
Test set: calc.repository.RepositoryTest
-------------------------------------------------------------------------------
Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.078 sec <<< FAILURE!
calc.repository.RepositoryTest  Time elapsed: 0 sec  <<< ERROR!
java.lang.NoClassDefFoundError: org/openqa/selenium/remote/SessionNotFoundException
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:191)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:186)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:182)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:95)
    at calc.repository.RepositoryTest.initWebDriver(RepositoryTest.java:24)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
    at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
    at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
    at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.remote.SessionNotFoundException
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 27 more
calc.repository.RepositoryTest  Time elapsed: 0.002 sec  <<< ERROR!
java.lang.NullPointerException
    at calc.repository.RepositoryTest.theEnd(RepositoryTest.java:29)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
    at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
    at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
    at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)
gartenkralle
  • 646
  • 1
  • 11
  • 21
  • what about C:\Users\cschneid\Desktop\Projekt\workspaceCalc\Calculator\CalculatorModuleMain\target\surefire-reports log? Could be that your tests are expecting src/testExec path? Is "testExec" changeable by anything and still works? – exoddus Apr 16 '15 at 08:02
  • test classes for maven should be located /src/test/java (not just src/test) https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html – exoddus Apr 16 '15 at 08:14
  • It is in /src/test/java, /src/testExec/java. – gartenkralle Apr 16 '15 at 08:29
  • It works with every path which is different from "src/test/java" But I don't want to change this path. – gartenkralle Apr 16 '15 at 08:49
  • it makes no sense... have you looked at C:\Users\cschneid\Desktop\Projekt\workspaceCalc\Calculator\CalculatorModuleMain\target\surefire-reports folder for more log information about error? – exoddus Apr 16 '15 at 08:55
  • Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0 sec <<< FAILURE! calc.template.TemplateExtendedTest Time elapsed: 0 sec <<< ERROR! java.lang.NoClassDefFoundError: org/openqa/selenium/remote/SessionNotFoundException – gartenkralle Apr 16 '15 at 09:16
  • calc.template.TemplateExtendedTest Time elapsed: 0 sec <<< ERROR! java.lang.NullPointerException – gartenkralle Apr 16 '15 at 09:16
  • You have test failures, fix your code. – Aleksandr M Apr 16 '15 at 10:13
  • Why it depents on path? – gartenkralle Apr 16 '15 at 10:14
  • check calc.repository.RepositoryTest.theEnd(RepositoryTest.java:29) where NP is thrown, something is wrong there. If it works if you change your test path, maybe it's because when you change this path tests are not executed and no error is thrown, when you point to standard path, tests are executed and fail due to errors shown at the second stack you added. – exoddus Apr 16 '15 at 12:09

1 Answers1

0

If your tests are located in another directory than the standard src/test/java directory, you can change the default value of the testSourceDirectory configuration parameter which is defined in the pom.xml

for example:

<build>
  <testSourceDirectory>src/testExec/java</testSourceDirectory>
</build>

If it works when you change your test classes location, seems that tests are not executed and seems to you that are ok, but they probably don't.

Try to specify you testSourceDirectory property in your pom.xml to point your actual test folder. Then check again if tests are properly executed.

If I'm right, tests will fail as same as when you put your tests in (src/test/java) and you should resolve the problems shown at

Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.remote.SessionNotFoundException

...

calc.repository.RepositoryTest  Time elapsed: 0.002 sec  <<< ERROR!
java.lang.NullPointerException
    at calc.repository.RepositoryTest.theEnd(RepositoryTest.java:29)

I guess it's not a problem with the folder name, seems a problem just with your tests classes, but if you place your tests in a non standard folder (like testExec or whtaever you want), maven skip the test execution and build is ok.

exoddus
  • 2,230
  • 17
  • 27