Давай исходить из того, что я тупой)
Вот я запускаю тесты, например, локлаьно
codeceptjs run-workers 4 --config=codecept.conf.js --grep @test
В codecept.conf.js у меня прописаны пути, хелперы и тп.
Дальше у меня есть фичафайл в котором написано
const table = new DataTable(....
table.add(.....
table.add(.....
table.add(.....
table.add(.....
table.add(.....
Data(table).Scenario('@test', async (current) => { код теста }
И тут у меня сейчас запускается 2 из 5 тестов.
Причем в другом таком же файлике запускается 7 из 7.
Что именно тебе надо показать?))
Кстати, сейчас обратил внимание, что там, где тесты 7 из 7 запускаются нет async (current), потому что внутри тестов нет асинхронных функций
Всем привет.
Я тут выяснил причину своей проблемы. Может кому-то будет интересно.
У codeceptjs можно запустить тесты параллельно через
1. run-multiple - он собирается все фича файлы и делить на количество потоков. Неважно сколько тестов в одном файле -> разное время потоков.
2. run-workers - параллелит по тестам.
Почему возникла проблема)
В run-workers по всем тестам проходит сначала главный поток и компилит их через cjs loader. Далее он берет все полученные тесты создает массив с хешами этих тестов (видимо там название и тестовые данные).
Далее он делит на количество воркеров и каждому отдает часть массива.
Каждый воркер опять компилит cjs loader и сравнивает хеш полученные с хешами в своем массиве. Что совпало - то запускает
У меня в тестовых данных параметризованных тестов создавался объект с одним из полей
faker.name.
После прохода основным потоком фейкер генерил одно имя -> из этого создавался хеш.
При проходе воркером фейкер генерит новое имя и хеш не совпадает .
Следовательно тест не запускается