Почему Maven завершается с ошибкой с SurefireExecutionException:> Невозможно установить параметр параллельно со значением - PullRequest
5 голосов
/ 21 сентября 2009

Привет, я работаю над учебником, используя Windows XP и последние сборки

http://binil.wordpress.com/2006/12/08/automated-smoke-tests-with-selenium-cargo-testng-and-maven/

Может кто-нибудь сказать мне, что это за теги?

<parallel>true</parallel>
<threadCount>10</threadCount>

Когда я строю с этими тегами, я получаю ошибку:

-------------------------------------------------------  
T E S T S
------------------------------------------------------- 
Running TestSuite
org.apache.maven.surefire.booter.SurefireExecutionException:
Cannot set option parallel with value
true; nested exception is
java.lang.reflect.InvocationTargetException:
null; nested exception is
org.apache.maven.surefire.util.NestedRuntimeException:
Cannot set option parallel with value
true; nested exception is
java.lang.reflect.InvocationTargetException:
null
org.apache.maven.surefire.util.NestedRuntimeException:
Cannot set option parallel with value
true; nested exception is
java.lang.reflect.InvocationTargetException:
null
java.lang.reflect.InvocationTargetException
 at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)  at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at
java.lang.reflect.Method.invoke(Method.java:585)
 at
org.apache.maven.surefire.testng.conf.AbstractDirectConfigurator$Setter.invoke(AbstractDirectConfigurator.java:117)
 at
org.apache.maven.surefire.testng.conf.AbstractDirectConfigurator.configure(AbstractDirectConfigurator.java:63)
 at
org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:71)
 at
org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:92)
 at
org.apache.maven.surefire.Surefire.run(Surefire.java:177)
 at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)  at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at
java.lang.reflect.Method.invoke(Method.java:585)
 at
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:338)
 at
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:997)
Caused by:
java.lang.NullPointerException  at
org.testng.TestNG.setParallel(TestNG.java:347)
 ... 15 more [INFO]
------------------------------------------------------------------------ 
[ERROR] BUILD FAILURE [INFO]
------------------------------------------------------------------------

Ответы [ 3 ]

6 голосов
/ 21 сентября 2009

Из документации surefire-plugin :

параллельный (только TestNG) Когда вы используете атрибут параллели, TestNG попытается запустить все ваши методы тестирования в отдельных потоках, кроме методов, которые зависят друг от друга и будут выполняться в одном нить, чтобы уважать их порядок исполнения.

threadCount (только TestNG) Атрибут thread-count позволяет вам указать, сколько потоков должно быть выделено для этого выполнения. Имеет смысл использовать только в сочетании с параллельными.

На странице TestNG документации по плагину есть раздел, посвященный параллельному запуску тестов. Для этого ваш верный плагин должен быть настроен так:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.4.2</version>
  <configuration>
    <parallel>methods</parallel>
    <threadCount>10</threadCount>
  </configuration>
</plugin>
1 голос
/ 03 февраля 2010

Это также может произойти, если вы используете старую версию TestNG.

Попробуйте обновить свою зависимость до TestNG, например:

<dependency>
  <groupId>org.testng</groupId>
  <artifactId>testng</artifactId>
  <version>5.11</version>
  <classifier>jdk15</classifier>
  <scope>test</scope>
</dependency>

PS: Многие люди обычно используют версию 5.1.

Приветствия

S. Али токмен http://ali.tokmen.com/

1 голос
/ 21 сентября 2009

true не является допустимым значением для опции parallel; попробуйте methods ( согласно документации )

...