Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我试图使用@DataProvider以不同的参数运行@test,但遇到异常_Java_Testng_Testng Dataprovider - Fatal编程技术网

Java 我试图使用@DataProvider以不同的参数运行@test,但遇到异常

Java 我试图使用@DataProvider以不同的参数运行@test,但遇到异常,java,testng,testng-dataprovider,Java,Testng,Testng Dataprovider,我想将参数传递给@test,以便使用不同的数据运行多次。所以我使用@DataProvider重新调整二维对象数组。我有一个一维字符串,所以首先我把它转换成二维数组,然后给对象赋值。但有以下例外 public class DtaProvider { public static String patchfileName = null; public static String[] patchsplit = null; public static String temp= n

我想将参数传递给@test,以便使用不同的数据运行多次。所以我使用@DataProvider重新调整二维对象数组。我有一个一维字符串,所以首先我把它转换成二维数组,然后给对象赋值。但有以下例外

public class DtaProvider {

    public static String patchfileName = null;
    public static String[] patchsplit = null;
    public static String temp= null;
    public int number   = 0;

      @DataProvider(name = "getData")
      public Object[][] createData() {

          patchfileName = "hi,how,are,you";
          patchsplit = patchfileName.split(",");

          Object[] arr = patchsplit ;

          System.out.println(arr.length);

          for(int i=0;i<arr.length;i++){
              System.out.println(arr[i].toString());
          }
          Object[][] data = new Object[arr.length][arr.length];

          for (int x = 0; x < arr.length; x++){
              data[x][x] = arr[x];

            }

          return data;

      } 



        @Test(dataProvider="getData")

        public void DownloadPatch(String patchfileNamea ){

            try{

            System.out.println("Name is b"+patchfileNamea);
            }
            catch (Exception e){
                org.testng.Assert.fail("Failed to Download Patch to NgDriver " + e.getMessage());

            } 
        }
}


TestNG] Running:
  C:\Users\Mohan Raj S\AppData\Local\Temp\testng-eclipse-1472908796\testng-customsuite.xml

4
hi
how
are
you
FAILED: DownloadPatch
org.testng.TestNGException: 
The data provider is trying to pass 4 parameters but the method testclasses.DtaProvider#DownloadPatch takes 1
    at org.testng.internal.Invoker.injectParameters(Invoker.java:1257)
公共类DtaProvider{
公共静态字符串patchfileName=null;
公共静态字符串[]patchsplit=null;
公共静态字符串temp=null;
公共整数=0;
@数据提供者(name=“getData”)
公共对象[][]创建数据(){
patchfileName=“你好,你好,你”;
patchsplit=patchfileName.split(“,”);
对象[]arr=patchsplit;
系统输出打印长度(arr.length);

对于(int i=0;i错误日志中明确提到,@Test method只取一个参数,@DataProvider返回四个参数

在@Test method中传递@DataProvider返回相同数量的参数非常简单

@Test(dataProvider="getData")
public void DownloadPatch(String param1, String param2, String param3, String param4){
   System.out.println(param1);
}
更新:1

即使您有某些理由在@Test方法中只传递一个参数,也需要以这种方式修改@DataProvider

public Object[][] createData() {
    patchfileName = "hi,how,are,you";
    patchsplit = patchfileName.split(",");
    Object[][] data = new Object[patchsplit.length][1];
    for (int x = 0; x < patchsplit.length; x++) {
        data[x][0] = patchsplit[x];

    }
    return data;
}
public对象[][]createData(){
patchfileName=“你好,你好,你”;
patchsplit=patchfileName.split(“,”);
对象[][]数据=新对象[patchsplit.length][1];
对于(int x=0;x
错误日志中明确提到,@Test method只接受一个参数,@DataProvider返回四个参数

在@Test method中传递@DataProvider返回相同数量的参数非常简单

@Test(dataProvider="getData")
public void DownloadPatch(String param1, String param2, String param3, String param4){
   System.out.println(param1);
}
更新:1

即使您有某些理由在@Test方法中只传递一个参数,也需要以这种方式修改@DataProvider

public Object[][] createData() {
    patchfileName = "hi,how,are,you";
    patchsplit = patchfileName.split(",");
    Object[][] data = new Object[patchsplit.length][1];
    for (int x = 0; x < patchsplit.length; x++) {
        data[x][0] = patchsplit[x];

    }
    return data;
}
public对象[][]createData(){
patchfileName=“你好,你好,你”;
patchsplit=patchfileName.split(“,”);
对象[][]数据=新对象[patchsplit.length][1];
对于(int x=0;x
错误日志中明确提到,@Test method只接受一个参数,@DataProvider返回四个参数

在@Test method中传递@DataProvider返回相同数量的参数非常简单

@Test(dataProvider="getData")
public void DownloadPatch(String param1, String param2, String param3, String param4){
   System.out.println(param1);
}
更新:1

即使您有某些理由在@Test方法中只传递一个参数,也需要以这种方式修改@DataProvider

public Object[][] createData() {
    patchfileName = "hi,how,are,you";
    patchsplit = patchfileName.split(",");
    Object[][] data = new Object[patchsplit.length][1];
    for (int x = 0; x < patchsplit.length; x++) {
        data[x][0] = patchsplit[x];

    }
    return data;
}
public对象[][]createData(){
patchfileName=“你好,你好,你”;
patchsplit=patchfileName.split(“,”);
对象[][]数据=新对象[patchsplit.length][1];
对于(int x=0;x
错误日志中明确提到,@Test method只接受一个参数,@DataProvider返回四个参数

在@Test method中传递@DataProvider返回相同数量的参数非常简单

@Test(dataProvider="getData")
public void DownloadPatch(String param1, String param2, String param3, String param4){
   System.out.println(param1);
}
更新:1

即使您有某些理由在@Test方法中只传递一个参数,也需要以这种方式修改@DataProvider

public Object[][] createData() {
    patchfileName = "hi,how,are,you";
    patchsplit = patchfileName.split(",");
    Object[][] data = new Object[patchsplit.length][1];
    for (int x = 0; x < patchsplit.length; x++) {
        data[x][0] = patchsplit[x];

    }
    return data;
}
public对象[][]createData(){
patchfileName=“你好,你好,你”;
patchsplit=patchfileName.split(“,”);
对象[][]数据=新对象[patchsplit.length][1];
对于(int x=0;x
如果您知道要传递的参数,则可以使用以下命令将单个参数传递给
@Test
方法

@DataProvider(name = "getData")
public Object[][] createData() {
    return new Object[][] { { "hi" }, { "how" }, { "are" }, { "you" } };
}

如果您知道要传递的参数,那么可以使用以下命令将单个参数传递给
@Test
方法

@DataProvider(name = "getData")
public Object[][] createData() {
    return new Object[][] { { "hi" }, { "how" }, { "are" }, { "you" } };
}

如果您知道要传递的参数,那么可以使用以下命令将单个参数传递给
@Test
方法

@DataProvider(name = "getData")
public Object[][] createData() {
    return new Object[][] { { "hi" }, { "how" }, { "are" }, { "you" } };
}

如果您知道要传递的参数,那么可以使用以下命令将单个参数传递给
@Test
方法

@DataProvider(name = "getData")
public Object[][] createData() {
    return new Object[][] { { "hi" }, { "how" }, { "are" }, { "you" } };
}

谢谢Priyan,我的方法应该只接受一个参数,你能指导我如何修改我的二维对象数组吗?这样参数将顺序返回Hanks Priyan,我的方法应该只接受一个参数,你能指导我如何修改我的二维对象数组吗?这样参数将顺序返回HanksPriyan,我的方法应该只接受一个参数,你能指导我如何修改我的二维对象数组吗?这样参数将被顺序返回Hanks Priyan,我的方法应该只接受一个参数,你能指导我如何修改我的二维对象数组吗?这样参数将被顺序返回