TestNG ведет себя по-разному в Eclipse и в ANT - PullRequest
0 голосов
/ 13 января 2012

Я использую Eclipse-PlugIn для TestNG, который отлично работает и выполняет мои тесты. Но это только когда я запускаю его из Eclipse.

Если я использую Apache ANT с указанной целью testng, он говорит, что TestNG не может выполнить задачи. Проблема в том, что существует несоответствие типов аргументов. Это действительно правильно. У меня есть метод before, который получает множество параметров, определенных в файле testng.xml, и один параметр от поставщика данных. И один параметр от поставщика данных, конечно, не объявлен как параметр файла testng.xml.

Самое смешное, что eclipse-plugin может справиться с этим корректно и работает так, как я хочу, но testng-версия ANT не может справиться с этим. Поэтому я спрашиваю себя, есть ли разные версии testng? Может быть, один справится, другой нет?

РЕДАКТИРОВАТЬ: Это трассировка стека. Это точно так же в плагине Eclipse и в ANT. Но в плагине eclipse нет исключения.

java.lang.IllegalArgumentException: argument type mismatch
    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:597)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:76)
    at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:525)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:202)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:613)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:846)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1170)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
    at org.testng.TestRunner.runWorkers(TestRunner.java:1147)
    at org.testng.TestRunner.privateRun(TestRunner.java:749)
    at org.testng.TestRunner.run(TestRunner.java:600)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:317)
    at org.testng.SuiteRunner.access$000(SuiteRunner.java:34)
    at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:351)
    at org.testng.internal.thread.ThreadUtil$CountDownLatchedRunnable.run(ThreadUtil.java:147)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:680)

Ответы [ 2 ]

0 голосов
/ 19 марта 2012

У меня была похожая проблема. Я хочу, чтобы ant использовал банку, сгенерированную моим новым кодом. Для этого мне пришлось открыть свойства моего проекта, выполнить поиск TestNG и установить флажок «Использовать jar проекта TestNG»

enter image description here

0 голосов
/ 13 января 2012

Самая новая версия - 6.3.1, я полагаю, что именно она используется в плагине eclipse.
Тот, что в муравье, вероятно, был загружен / установлен вами.

Если вы откроете файл, используемый в ant как zip-файл, вы можете взглянуть на манифест в META-INF/Manifest.mf. Это скажет вам версию этой банки.

Возможно, это несоответствие версий между библиотеками.

...