Java Spring框架和TestNG:无法传递某些参数

Java Spring框架和TestNG:无法传递某些参数,java,spring,testng,Java,Spring,Testng,我有一些WebdriverSelenium/TestNG/Maven/Java连续集成测试,我对这些测试进行了重构(删除了大量继承项),现在我还安装了SpringDI框架 我只是无法将参数传递给测试方法(oneUserTwoUser) 这是数据提供者 public class AppData { public static WebDriver driver; public static WebDriverWait wait; final static String FI

我有一些WebdriverSelenium/TestNG/Maven/Java连续集成测试,我对这些测试进行了重构(删除了大量继承项),现在我还安装了SpringDI框架

我只是无法将参数传递给测试方法(oneUserTwoUser)

这是数据提供者

public class AppData { 
    public static WebDriver driver;
    public static WebDriverWait wait;
    final static String FILE_PATH = "src/test/resources/250.csv";
    final static String FILE_PATH2 = "src/test/resources/places.csv";
    public static ArrayList<ArrayList<String>> array;

    public static Object[][] setUp() throws Exception {

        //prepare data

        //read data from CSV files
        array = getCSVContent(FILE_PATH, 5);
        array2 = getCSVContent(FILE_PATH2, 7);

        //pass the data to the test case
        Object[][] setUp = new Object[1][3];
        setUp[0][0] = driver;
        setUp[0][1] = wait;
        setUp[0][2] = array;    
        return setUp;
    }
如报告所述:

使用
@DataProvider(name=“standardTestData”)


然后删除除
@Test(dataProvider=“standardTestData”,dataProviderClass=AppData.class)之外的所有其他注释。

首先要注意的是,您的参数数量错误。您正在传入4个参数,而不是在
@parameters
和参数列表中定义的3个参数。当你纠正这个错误时会发生什么?我没有传递4个参数。第四个参数可供另一个类使用,但这里我只传递3。(第四个参数在对象中可用,但从未调用)。无论如何,我删除了第四个,没有任何变化:(@BobDalgleish原来你是对的,后来当我删除了大问题时,在实现了接受答案的解决方案后,我收到了一条错误消息,抱怨我传递了4个参数。
public static AppData appdata;

public static void main (String[] args) {
    BeanFactory beanfactory = new XmlBeanFactory(new FileSystemResource("spring.xml"));
    appdata = (AppData) beanfactory.getBean("data");
}

@Parameters({ "driver", "wait", "array" })
@Factory(dataProviderClass = AppData.class, dataProvider = "setUp")
@Test
public void oneUserTwoUser(WebDriver driver, WebDriverWait wait, ArrayList<ArrayList<String>> array) throws Exception {
org.testng.TestNGException: 
Parameter 'driver' is required by @Test on method oneUserTwoUser but has not been marked @Optional or defined