【问题标题】:TestNg DataBinding : unable to pass parameters to test using databindingTestNg DataBinding:无法使用数据绑定传递参数进行测试
【发布时间】:2018-02-28 22:45:21
【问题描述】:

我的要求是对输入文件中给出的数据运行测试。为了实现,我正在使用

@DataBinding [net.sf.testng.databinding.DataBinding] 

但我在运行时遇到问题

错误:

跳过:数据绑定测试 org.testng.TestNGException: 方法 databindingTest 需要 1 个参数,但在 @Test 注释。在 org.testng.internal.Parameters.checkParameterTypes(Parameters.java:191) 在 org.testng.internal.Parameters.createParameters(Parameters.java:127) 在 org.testng.internal.Parameters.createParameters(Parameters.java:376) 在 org.testng.internal.Parameters.handleParameters(Parameters.java:451) 在 org.testng.internal.Invoker.handleParameters(Invoker.java:1276) 在 org.testng.internal.Invoker.createParameters(Invoker.java:992) 在 org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1082) atorg.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:124) 在 org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108) 在 org.testng.TestRunner.privateRun(TestRunner.java:773) 在 org.testng.TestRunner.run(TestRunner.java:623) 在 org.testng.SuiteRunner.runTest(SuiteRunner.java:357) 在 org.testng.SuiteRunner.runSequentially(SuiteRunner.java:352) 在 org.testng.SuiteRunner.privateRun(SuiteRunner.java:310) 在 org.testng.SuiteRunner.run(SuiteRunner.java:259) 在 org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 在 org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 在 org.testng.TestNG.runSuitesSequentially(TestNG.java:1185) 在 org.testng.TestNG.runSuitesLocally(TestNG.java:1110) 在 org.testng.TestNG.run(TestNG.java:1018) 在 org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114) 在 org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251) 在 org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

下面是创建的属性文件:

databindingTest.dataSource=json
databindingTest.url=/data/test/availabilityCheck.json

下面是在位置创建的Json文件

/data/test/availabilityCheck.json in Resource folder 

[{"testInput":
{ "Id": "92901225" }
}]


Test Class :

package com.temp.databinding;

import org.testng.annotations.Test;

import net.sf.testng.databinding.DataBinding;
import net.sf.testng.databinding.TestInput;

public class validateDataBinding {

@DataBinding
@Test
public void databindingTest(@TestInput(name = "Id") String skuId) {
    // TODO Auto-generated method stub

    System.out.println("@TestInput(name = \"skuId\") String skuId :: "+skuId );
    }

}

请帮助确定我做错了什么。

【问题讨论】:

  • 您尝试过哪些替代方案?通过在互联网上研究问题,您学到了什么?您尝试过哪些潜在的互联网解决方案,结果如何?
  • 我已经尝试过 @DataProvider ,这给了我预期的结果。但这里的事情是我必须编写额外的代码来读取数据并传递给测试。 @DataProvider(name = "getinputdata")

标签: java data-binding testng


【解决方案1】:

感谢您使用 TestNG 数据绑定。我是那个图书馆的作者。不幸的是,目前没有可用的 json 数据源。您可以使用任何现有的数据源(csv、properties、text 和 xml),也可以自己实现 json 数据源插件并将其作为 maven 工件提供给社区。如果您决定这样做,请告诉我。

最好的问候, 马特

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 2012-04-19
    • 2021-09-19
    相关资源
    最近更新 更多