我正在使用Eclipse-PlugIn for TestNG,它工作正常并执行我的测试。但这只是在我从Eclipse开始的时候。
如果我将Apache ANT与指定的testng-target一起使用,则表示TestNG无法执行任务。问题是参数类型不匹配。这确实是正确的。我有一个before方法,它获取了testng.xml文件中定义的大量参数和来自数据提供者的一个参数。当然,数据提供程序中的一个参数未声明为testng.xml文件的参数。
有趣的是,eclipse-plugin可以正确处理它并按我的意愿工作但是ANT的testng版本无法处理它。所以我问自己,有不同版本的testng吗?也许一个人可以处理它,另一个不能处理它?</ p>
编辑:这是堆栈跟踪。它在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)
答案 0 :(得分:0)
最新版本是6.3.1,我想这是eclipse插件正在使用的版本 蚂蚁中的那个可能是您下载/安装的。
如果你像在zip文件中那样打开ant中使用的那个,你可以查看META-INF/Manifest.mf
中的清单。
这将告诉你这个jar的版本。
这可能是库之间的版本不匹配。
答案 1 :(得分:0)
我有类似的问题。我希望ant使用我的新代码生成的jar。为了做到这一点,我必须打开我的项目的属性,搜索TestNG并检查“使用TestNG项目jar”