#node.js #typescript #testing #automated-tests #testcafe
#node.js #typescript #тестирование #автоматизированные тесты #testcafe
Вопрос:
Я пытаюсь запустить тест TestCafe с помощью API test cafe:-
await testCafe.createRunner().src(./testFile.ts).browsers("Chrome").run();
Каждый раз, когда я пытаюсь запустить тест, API TestCafe выдает эту ошибку со следующей трассировкой стека:
Uncaught (in promise) TypeError: this._connectionsReadyTimeout.unref is not a function
at BrowserSet.dispose (C:Usersnode_modulestestcafesrcrunnerbrowser-set.ts:161:43)
at C:Usersnode_modulestestcafesrcrunnerbrowser-set.ts:129:34
at Bootstrapper._getBrowserConnections (C:Usersnode_modulestestcafesrcrunnerbootstrapper.ts:214:16)
at async Promise.all (index 0)
at Bootstrapper._bootstrapParallel (C:Usersnode_modulestestcafesrcrunnerbootstrapper.ts:375:38)
at Bootstrapper.createRunnableConfiguration (C:Usersnode_modulestestcafesrcrunnerbootstrapper.ts:411:42)
Как я могу это решить?
Комментарии:
1. Не могли бы вы, пожалуйста, указать свой TestCafe и версию операционной системы и поделиться кодом вашего теста и бегуна? Я не могу воспроизвести ту же проблему, используя только опубликованное выражение. Пожалуйста, обратите внимание, что имя тестового файла в
src
должно быть строкой и должно быть заключено в единственное число или двойные кавычки. Имя браузера чувствительно к регистру, и правильный регистрchrome
.2. @AndreyBelym Я использую testcafe — 1.9.0, Chrome: 86.0, Node: 14.11.0 и Windows 10 Enterprise, версия 1909. Я отладил код и обнаружил, что эта проблема возникла из-за ошибки времени ожидания — «Не удалось установить одно или несколько указанных подключений к браузеру. (Е1004). Тестовый код выглядит следующим образом: импорт { Селектор } из ‘testcafe’; приспособление ‘Новый проект’.страница(«google.com /»); test (‘Новый тестовый пример’, асинхронный t => { }); Наряду с этой проблемой, не могли бы вы сообщить мне, есть ли какие-либоспособ запустить тест в виде строки вместо того, чтобы запускать его с помощью тестового файла?
3. Когда время ожидания для установления соединения для браузера прошло, мы выдаем сообщение об этом и пытаемся избавиться от использованного Node.js таймер, использующий свой метод unref. Но в вашем случае этот метод, похоже, не является функцией. Мы все еще не можем воспроизвести его, поэтому я предлагаю вам обновить TestCafe до последней версии. Если ошибка сохраняется, пожалуйста, создайте отчет об ошибке в репозитории TestCafe с более подробной информацией: полный код вашего бегуна и способ его выполнения.
4. Что касается вопроса о передаче тестового кода в виде строки — такой функции пока нет, но вы можете создать файл с тестовым кодом, используя Node.js пакет fs и укажите его имя в методе src программы TestCafe runner.
5. Рад слышать, что проблема решена. Не могли бы вы уточнить, решило ли это обновление до последней версии TestCafe? Я думаю, это может быть полезно тем, кто может столкнуться с этой проблемой в будущем.