如何让JUnit(WebDriver)测试重新运行多次?

如何让JUnit(WebDriver)测试重新运行多次?,junit,webdriver,junit4,Junit,Webdriver,Junit4,这通常是JUnit的一个问题,但它涉及到使用SeleniumWebDriver实现浏览器自动化 我有一个JUnit4测试套件,它运行一个JUnit测试类。我的JUnit测试类中有10个测试方法,它们填充了一个网页。在这个JUnit测试类中,我有一个保存测试数据的List对象。我当前可以通过访问列表对象来驱动单元测试,如下所示: // all data for my tests can be grabbed using the get(0) method testListObject.getPer

这通常是JUnit的一个问题,但它涉及到使用SeleniumWebDriver实现浏览器自动化

我有一个JUnit4测试套件,它运行一个JUnit测试类。我的JUnit测试类中有10个测试方法,它们填充了一个网页。在这个JUnit测试类中,我有一个保存测试数据的List对象。我当前可以通过访问列表对象来驱动单元测试,如下所示:

// all data for my tests can be grabbed using the get(0) method
testListObject.getPersonEntity.get(0).getName();
我对StackOverflow用户的问题是:

我如何重构我的JUnit测试,使它能够在我的对象列表中运行多个测试

换言之:

  • 是否有可能创建一个循环列表的方法,并在循环中每次都以某种方式触发所有测试方法?这有意义吗?然后,单元测试不会在每次填写页面时完成,而是在为列表中的每个测试用例填写页面后完成

  • 或者,我应该将测试列表移到TestSuite对象,并以某种方式多次调用单元测试类吗?如果是,怎么做


  • 我不确定如何实现这一点,因为我不太熟悉JUnit的工作原理。换句话说,由于不知道“测试”方法是如何启动的,我目前不知道让JUnit测试运行多次的正确方法。另一种提问方式:如何让TestSuite类多次调用单元测试类,每次都使用不同的testentity参数(来自列表)来驱动测试?

    请参阅JUnit中的和。我认为他们提供了你所需要的。要获得更多帮助,请参阅您只需要使用
    @RunWith(Parameterized.class)
    ,提供一个带有
    Parameterized.Parameters
    注释的方法,该方法返回每次运行所需的数据(在列表、数组或某些集合中),最奇怪的是,为测试类提供了一个构造函数,该类接受可编辑数据的输入类型。

    谢谢。是的,看起来构造函数和获取参数列表的方法都是通过反射调用的,并且不应该直接调用。这一开始令人困惑。