Бег
package com.thron.qa.tests
import org.scalatest.{FunSuite, ParallelTestExecution}
import org.scalatest.concurrent.Eventually
class ParallelRuntimeTest extends FunSuite with Eventually with ParallelTestExecution{
Vector.range(0,10).foreach(iteration => {
test ("test number n " + iteration.toString) {
succeed
}
})
}
я получаю создание теста во время выполнения: итерация по вектору строится на тестах, и каждый отдельный тест имеет статус успеха, как вы можете видеть в Идее
Теперь я хочу распараллелить эти тесты
обычно я использую .par для распараллеливания операций, поэтому код становится
Vector.range(0,10).par.foreach(iteration => {
test ("test number n " + iteration.toString) {
succeed
}
})
но в этом случае я получаю эту ошибку:
Исключение или ошибка привели к прерыванию выполнения: два потока попытались изменить внутренние данные FunSuite, которые должны быть изменены только потоком, создающим объект. Вероятно, это означает, что подкласс позволил ссылке this уйти во время построения, и какой-то другой поток попытался вызвать методы «testsFor» или «test» для объекта до того, как первый поток завершил свое построение. java.util.ConcurrentModificationException: два потока попытались изменить внутренние данные FunSuite, которые должны быть изменены только потоком, создающим объект. Вероятно, это означает, что подкласс позволил ссылке this уйти во время построения, и какой-то другой поток попытался вызвать методы «testsFor» или «test» для объекта до того, как первый поток завершил свое построение.
как создать тест во время выполнения и запустить его параллельно?
Благодарность
