我对dataProvider也有相同的经验。在我的情况下,我使用了dataProvider的(parallel = true)属性。您的问题有两种解决方案。
- 在测试类中使用dataProvider,并为构造函数使用工厂注释。在工厂注释的属性中,使用dataProvider =“您的dataProvider的名称”。在testng.xml中,使用parallel = instances而不是parallel = methods。
上述方法的缺点是在获取报告时;可能是mavensurefire,testng
Eclipse报告或reportNG报告,您看不到预先传递的参数。为了克服这个问题,您可以使用以下方法。
- 创建一个工厂类,并使用for循环在工厂方法中实例化您的测试类。(从0开始循环。)在测试类中定义一个构造函数,该构造函数从工厂类接收参数。在此测试类中定义一个dataProvider,它可以使用构造函数中接收到的参数(数据点)。定义一个可以使用该参数或数据点的BeforeMethod或BeforeClass,并且您的测试方法应具有指向所需dataProvider的“ dataProvider”属性。同样,在testng.xml中使用parallel =“ instances”。
另外,使用try / catch块实例化驱动程序对象并关闭浏览器。这将帮助您避免由于tearDown方法的setUp失败而导致的跳过。



