Testcafe выдает это._connectionsReadyTimeout.unref не является исключением функции. Браузер открывается, а тест никогда не запускается

#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? Я думаю, это может быть полезно тем, кто может столкнуться с этой проблемой в будущем.