2015-04-16 6 views
1

У меня есть проект, который выполняет некоторые тесты на селен. Тесты находятся в папке «src/test/java». Когда я пытаюсь построить проект с помощью maven (опция: clean install), я получаю ошибку сборки.Почему успех сборки зависит от имени папки? (maven/selenium)

Но когда я переименовал папку в «src/testExec/java» или любой другой путь, отличный от «src/test/java», процесс сборки завершится с ошибкой.

Почему? Я хотел бы придерживаться стандартного соглашения об именах «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 

В местоположении "C: \ Users \ cschneid \ Desktop \ Projekt \ workspaceCalc \ Calculator \ CalculatorModuleMain \ цель \ безошибочный-отчеты" является:

------------------------------------------------------------------------------- 
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) 
+0

о C: \ Users \ cschneid \ Desktop \ Projekt \ workspaceCalc \ Calculator \ CalculatorModuleMain \ target \ surefire-reports log? Может быть, ваши тесты ожидают путь src/testExec? Является ли «testExec» изменчивым чем-либо и все еще работает? – exoddus

+0

должны быть установлены тестовые классы для maven/src/test/java (не только src/test) https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html – exoddus

+0

Это находится в/src/test/java,/src/testExec/java. – gartenkralle

ответ

0

Если ваши тесты находятся в другом каталоге чем стандартный каталог SRC/тест/Java, вы можете изменить значение по умолчанию параметра testSourceDirectory конфигурации, которая определяется в pom.xml

, например:

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

Если он работает, когда вы меняете местоположение тестовых классов, кажется, что тесты не выполняются, и вам кажется, что все в порядке, но, вероятно, нет.

Попробуйте указать ваше свойство testSourceDirectory в вашем pom.xml, чтобы указать вашу фактическую папку для тестирования. Затем проверьте, правильно ли выполняются тесты.

Если я прав, тесты будут выпадать так же, как и когда вы кладете свои тесты в (SRC/тест/Java), и вы должны решить проблемы, показанные на

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) 

Я думаю это не проблема с именем папки, кажется, проблема только с классами тестов, но если поместить тесты в стандартной папке, не (как testExec или whtaever вы хотите), специалист пропустить тест исполнение и сборка в порядке.

 Смежные вопросы

  • Нет связанных вопросов^_^