TestNG在Eclipse和ANT中的行为不同

TestNG在Eclipse和ANT中的行为不同,eclipse,ant,testng,Eclipse,Ant,Testng,我正在使用用于TestNG的Eclipse插件,它运行良好并执行我的测试。但这只是在我从Eclipse开始的时候 如果将ApacheAnt与指定的testng目标一起使用,则表示testng无法执行任务。问题是参数类型不匹配。这的确是正确的。我有一个before方法,它获取testng.xml文件中定义的许多参数和数据提供者提供的一个参数。当然,数据提供程序中的一个参数没有声明为testng.xml文件的参数 有趣的是,eclipse插件可以正确处理它,并且可以按照我的要求工作,但是testng

我正在使用用于TestNG的Eclipse插件,它运行良好并执行我的测试。但这只是在我从Eclipse开始的时候

如果将ApacheAnt与指定的testng目标一起使用,则表示testng无法执行任务。问题是参数类型不匹配。这的确是正确的。我有一个before方法,它获取testng.xml文件中定义的许多参数和数据提供者提供的一个参数。当然,数据提供程序中的一个参数没有声明为testng.xml文件的参数

有趣的是,eclipse插件可以正确处理它,并且可以按照我的要求工作,但是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)

最新版本是6.3.1,我想这就是eclipse插件正在使用的版本。 ant中的那个可能是您下载/安装的

如果将ant中使用的文件像zip文件一样打开,那么可以查看META-INF/manifest.mf中的清单。 这将告诉你这个罐子的版本


这可能是两个库之间的版本不匹配。

我也有类似的问题。我希望ant使用我的新代码生成的jar。为了做到这一点,我必须打开项目的属性,搜索TestNG并选中UseTestNG项目jar


在verbose=10的情况下运行,这将为您提供有关正在发生的事情的更多信息。如果没有帮助,请删减您的Eclipse项目,以便我可以构建它并通过电子邮件发送给我,我会看一看。