У меня есть тестовый класс, в котором все методы используют один и тот же DataProvider. Я хочу, чтобы DataProvider был распараллелен. Я не могу использовать заводской метод, потому что в TestNg есть дефект, который делает его бесполезным для моей цель.
Прямо сейчас поставщик данных пересчитывается для каждого метода, который его использует. Использование фабрики решило бы эту проблему, за исключением того, что мне нужно, чтобы все методы в каждом экземпляре тестового класса, порожденного фабрикой, запускались в ОДНОМ потоке. В TestNG есть нерешенный дефект, когда параллельное выполнение по экземплярам не работает. Я пробовал использовать более старые версии TestNG, но каждая версия, которую я пробовал, имеет дефект. Я могу только вернуться назад, прежде чем начну терять другие нужные мне функции.
Мне также нужно, чтобы DataProvider работал параллельно, то есть все методы в тестовом классе должны запускаться параллельно для каждого из предоставленных наборов данных. Есть ли какое-то обходное решение, которое я могу использовать, чтобы гарантировать, что DataProvider инициализируется только один раз, а поставщик является многопоточным?
Еще одна проблема заключается в том, что когда я использую параллельный DataProvider без Factory, каждый тестовый метод запускается в отдельном потоке. Я хочу, чтобы ВСЕ методы в тестовом классе выполнялись в ОДНОМ потоке для каждого набора данных в поставщике и для каждого набора данных, который выполнялся параллельно. Итак, если у меня есть три набора данных, мне нужны три потока, в которых выполняются тестовые методы в классе.