【问题标题】:TestNG behaves different in Eclipse and in ANTTestNG 在 Eclipse 和 ANT 中的行为不同
【发布时间】:2023-03-19 06:30:02
【问题描述】:

我正在使用适用于 TestNG 的 Eclipse-PlugIn,它可以正常工作并执行我的测试。但这只是当我从 Eclipse 中启动它时。

如果我将 Apache ANT 与指定的 testng-target 一起使用,它会说 TestNG 无法执行任务。问题是参数类型不匹配。这确实是正确的。我有一个 before 方法,它获取 testng.xml 文件中定义的大量参数和来自数据提供者的一个参数。而且数据提供者的一个参数当然没有声明为 testng.xml 文件的参数。

有趣的是,eclipse-plugin 可以正确处理它并按我的意愿工作,但 ANT 的 testng-version 无法处理它。所以我问自己,是否有不同版本的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)

【问题讨论】:

  • 以verbose=10 运行,这应该会为您提供有关正在发生的事情的更多信息。如果它没有帮助,修剪你的 Eclipse 项目,以便我可以构建它并通过电子邮件发送给我,我会看看。

标签: eclipse ant testng


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    我遇到了类似的问题。我希望 ant 使用我的新代码生成的 jar。为此,我必须打开项目的属性,搜索 TestNG 并选中“使用 TestNG 项目 jar”

    【讨论】:

      猜你喜欢
      • 2016-05-13
      • 1970-01-01
      • 2011-10-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2017-12-30
      • 1970-01-01
      相关资源
      最近更新 更多