我有一个测试类,其中所有方法都使用相同的 DataProvider。我希望 DataProvider 被并行化。我不能使用 Factory 方法,因为 TestNg 存在缺陷,这使得它对我的目的毫无用处。
现在,为使用它的每个方法重新计算数据提供者。使用工厂可以解决这个问题,只是我需要工厂生成的测试类的每个实例中的所有方法都在同一线程中运行。TestNG 存在一个突出的缺陷,即按实例并行不起作用。我曾尝试使用旧版本的 TestNG,但我尝试的每个版本都有缺陷。在我开始失去我需要的其他功能之前,我只能回到这么远的地方。
我还需要 DataProvider 并行运行——也就是说,测试类中的所有方法都应该为所提供的每组数据并行运行。是否有一些解决方法可以用来确保 DataProvider 只初始化一次并且提供程序是多线程的?
另一个问题是,当我使用没有工厂的并行 DataProvider 时,每个测试方法都在单独的线程中运行。我想要的是测试类中的所有方法都在提供程序中的每个数据集的相同线程中运行,并且每个数据集要并行执行。所以,如果我有三个数据集,我想要三个线程来执行类中的测试方法。