Size: a a a

2020 July 17

k

ko4ergins in JS for testing
Зачем выделять текст?
Можешь описать полностью тест-кейс?
источник

S

Sergei in JS for testing
Да полно кейсов) н-р проверить что тултип всплыл над выделенным словом
источник

k

ko4ergins in JS for testing
источник

k

ko4ergins in JS for testing
источник

L

Liberum in JS for testing
ko4ergins
Зачем выделять текст?
Можешь описать полностью тест-кейс?
У нас специфический софт, производит разметку текста, сложный фронтенд на JS. Есть куча тест кейсов типа: выделил абзац, разметил так, затем выделил внутри него слово, разметил эдак.
источник

L

Liberum in JS for testing
Посмотрю, попробую, спасибо
источник

PS

Pavel Strunkin in JS for testing
Liberum
У нас специфический софт, производит разметку текста, сложный фронтенд на JS. Есть куча тест кейсов типа: выделил абзац, разметил так, затем выделил внутри него слово, разметил эдак.
возможно ли такое проверить на уровне компонентов?
источник

PS

Pavel Strunkin in JS for testing
может и не нужно браузер подымать что бы проверить как ивент ховера отрабатывает
источник

L

Liberum in JS for testing
Pavel Strunkin
возможно ли такое проверить на уровне компонентов?
Мне e2e нужно, максимально приближенное к юзеру, в разных браузерах. Максимально приближенное к нативному выделению текста мышью. Бывает в сафари плывет у нас выделение. Бывает в FireFox при захвате пробела после слова, выделяется следующее слово. Результаты выделений обработать не проблема через codecept, а вот инициировать действия, прямо беда.
источник

PS

Pavel Strunkin in JS for testing
Liberum
Мне e2e нужно, максимально приближенное к юзеру, в разных браузерах. Максимально приближенное к нативному выделению текста мышью. Бывает в сафари плывет у нас выделение. Бывает в FireFox при захвате пробела после слова, выделяется следующее слово. Результаты выделений обработать не проблема через codecept, а вот инициировать действия, прямо беда.
это все понятно, для этого такие тесты и пишут
просто уточняю возможность проверки основных кейсов на уровне ниже
и оставить один кийс для реального браузера
возможно то что оно ломаеться в брайзере говорит что таких тестов или нет или нет возможности так проверить
источник

PS

Pavel Strunkin in JS for testing
может нужно нового фронтендера нанять )
источник

L

Liberum in JS for testing
Pavel Strunkin
это все понятно, для этого такие тесты и пишут
просто уточняю возможность проверки основных кейсов на уровне ниже
и оставить один кийс для реального браузера
возможно то что оно ломаеться в брайзере говорит что таких тестов или нет или нет возможности так проверить
В этом просто смысла нету на уровень ниже. Нужно смотреть как браузер(фронт) обрабатывает физическое нативное выделение. А не посылать в компонент уже выделенный фрагмент.
источник

ЖR

Жора Rusanov in JS for testing
Жора Rusanov
Давай исходить из того, что я тупой)
Вот я запускаю тесты, например, локлаьно
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.
После прохода основным потоком фейкер генерил одно имя -> из этого создавался хеш.
При проходе воркером фейкер генерит новое имя и хеш не совпадает .
Следовательно тест не запускается
источник

L

Liberum in JS for testing
Pavel Strunkin
может нужно нового фронтендера нанять )
Там правда сложная логика )
источник

BO

Boris Osipov in JS for testing
Жора Rusanov
Всем привет.
Я тут выяснил причину своей проблемы. Может кому-то будет интересно.

У codeceptjs можно запустить тесты параллельно через
1. run-multiple - он собирается все фича файлы и делить на количество потоков. Неважно сколько тестов в одном файле -> разное время потоков.
2. run-workers - параллелит по тестам.
Почему возникла проблема)
В run-workers по всем тестам проходит сначала главный поток и компилит их через cjs loader. Далее он берет все полученные тесты создает массив с хешами этих тестов (видимо там название и тестовые данные).
Далее он делит на количество воркеров и каждому отдает часть массива.

Каждый воркер опять компилит cjs loader и сравнивает хеш полученные с хешами в своем массиве. Что совпало - то запускает

У меня в тестовых данных параметризованных тестов создавался объект с одним из полей faker.name.
После прохода основным потоком фейкер генерил одно имя -> из этого создавался хеш.
При проходе воркером фейкер генерит новое имя и хеш не совпадает .
Следовательно тест не запускается
источник

PS

Pavel Strunkin in JS for testing
Liberum
В этом просто смысла нету на уровень ниже. Нужно смотреть как браузер(фронт) обрабатывает физическое нативное выделение. А не посылать в компонент уже выделенный фрагмент.
возможно, вам виднее
хотел уточнить что этот вариант тоже рассмотрели )
источник

MB

Michael Bodnarchuk in JS for testing
Жора Rusanov
Всем привет.
Я тут выяснил причину своей проблемы. Может кому-то будет интересно.

У codeceptjs можно запустить тесты параллельно через
1. run-multiple - он собирается все фича файлы и делить на количество потоков. Неважно сколько тестов в одном файле -> разное время потоков.
2. run-workers - параллелит по тестам.
Почему возникла проблема)
В run-workers по всем тестам проходит сначала главный поток и компилит их через cjs loader. Далее он берет все полученные тесты создает массив с хешами этих тестов (видимо там название и тестовые данные).
Далее он делит на количество воркеров и каждому отдает часть массива.

Каждый воркер опять компилит cjs loader и сравнивает хеш полученные с хешами в своем массиве. Что совпало - то запускает

У меня в тестовых данных параметризованных тестов создавался объект с одним из полей faker.name.
После прохода основным потоком фейкер генерил одно имя -> из этого создавался хеш.
При проходе воркером фейкер генерит новое имя и хеш не совпадает .
Следовательно тест не запускается
интересный кейс, спасибо
источник

L

Liberum in JS for testing
Pavel Strunkin
возможно, вам виднее
хотел уточнить что этот вариант тоже рассмотрели )
Спасибо за интерес к моему вопросу в любом случае )
источник

ЖR

Жора Rusanov in JS for testing
Michael Bodnarchuk
интересный кейс, спасибо
Я хотел на это ишью завести. Стоит или ты уже пометил где-то?
источник

MB

Michael Bodnarchuk in JS for testing
Жора Rusanov
Я хотел на это ишью завести. Стоит или ты уже пометил где-то?
заведи пожалуйста, а то действительно очень интересный кейс про который не хотелось бы забыть
источник