Начинаю разбираться в автоматизации на JS, сейчас стоит выбор тестового фреймворка, подскажите если ли какое то подобие TestNG только для JS?
По большей части можно и без альтернативы, основная задача запускать тесты в несколько потоков\один тест много раз, в testNG это позволяет добавить параметры threadPoolSize = 6, invocationCount = 6 в аннотацию @Test, как это можно сделать\реализовать на JS?
Смотри в сторону mocha
Много тестов в паралель:
- mocha + mocha.parallel - рабочее решение но прийдется пожертвовать многими фичами mocha поскольку mocha.parallel самописное решение с кучей недороботок
- ava - паралельные и последовательные тесты из коробки (минус нету BDD, но есть кастомная либа ava-spec которая добавит BDD только без вложеностей по describe)
- jest - есть возможность запускать тесты паралельно через it.concurrent но работает это довольно глючно и с ошибками по логике работы по before и after (и пока фиксить эти проблемы они не собираются)
Один тест много раз паралельно:
это для нагрузочного тестирования?
Если да, то тут без особых конкурентов у JS:
- k6.io - все и сразу из коробки + нормальная документация
- artillery.io - для легкого старта тестирования нагрузки (не большой проект с неочень высокими требованиями к нагрузочному тестированию)
Если бы я начинал проект с нуля то наверное выбрал бы: AVA и k6
ПС. Если нужно запускать ГУИ тесты в паралель то еще есть проект TestCafe
Спасибо за подробную инфу.
Привет, спасибо за ответ.
А подскажи по AVA - сколько тредов максимально паралелил? Как пригружает машинку на которой запускается? Сложно ли кастомизировать его?
Я поглядываю на него, но еще не использовал.
AVA я тоже не использовал как рабочий инструмент, просто просматривал как вариант когда хотели спрыгнуть с mocha
Пофакту у него все тесты написаные в одном файле выполняются паралельно (это его дефолтное поведение), поэтому их все нужно писать как независимые. Однако у него есть возможность заставить их работать последовательно.
Насчет нагрузки на машину не скажу - не проверял
По скорости выполнения - медление чем mocha+mocha.parallel (есть значительная задержка на старте тестов 2-3 сек. Если в наборе есть медленный тест то это не очень накладно и заметно, но если все тесты набора пробегают 1-2 сек то эта задержка критична)
По кастомизации не знаю - поскольку проверял на нем самые простые тесты чтобы понять как работает в целом и не углублялся в детали.
Из того что не понравилось - это before и after которые действуют только на весь набор тестов и нельзя их приминять отдельно для вложеных дескрайбов. Также нормальный шаринг контекста before и after между it у меня не получился, ходя судя по доке он есть.