TestNG在Eclipse和ANT中表现不同

时间:2012-01-13 12:31:22

标签: eclipse ant testng

我正在使用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)

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

enter image description here