0

我有一个测试类,其中所有方法都使用相同的 DataProvider。我希望 DataProvider 被并行化。我不能使用 Factory 方法,因为 TestNg 存在缺陷,这使得它对我的目的毫无用处。

现在,为使用它的每个方法重新计算数据提供者。使用工厂可以解决这个问题,只是我需要工厂生成的测试类的每个实例中的所有方法都在同一线程中运行。TestNG 存在一个突出的缺陷,即按实例并行不起作用。我曾尝试使用旧版本的 TestNG,但我尝试的每个版本都有缺陷。在我开始失去我需要的其他功能之前,我只能回到这么远的地方。

我还需要 DataProvider 并行运行——也就是说,测试类中的所有方法都应该为所提供的每组数据并行运行。是否有一些解决方法可以用来确保 DataProvider 只初始化一次并且提供程序是多线程的?

另一个问题是,当我使用没有工厂的并行 DataProvider 时,每个测试方法都在单独的线程中运行。我想要的是测试类中的所有方法都在提供程序中的每个数据集的相同线程中运行,并且每个数据集要并行执行。所以,如果我有三个数据集,我想要三个线程来执行类中的测试方法。

4

1 回答 1

0

最好的解决方案是提出一个拉取请求来解决您指出的问题。否则,您可以通过拥有静态属性并在第一次调用(及其初始化)后返回它来自己管理问题。你也可以有一个外部数据提供者类,默认情况下你可以在构造函数中初始化。

于 2015-12-07T05:39:41.597 回答