Привет всем
Я использую Protractor и webdriver-manager в одной задаче grunt, так как в ci я не могу использовать 2 окна терминала.
Спецификации: Windows 7, узел v0.10.26, Protractor 0.22.0, бегун транспортира (который использует Protractor 0.22.0)
Я использую grunt одновременно с двумя задачами - запуск webdriver-manager оболочки grunt и транспортир. Запуская тесты один за другим, они всегда завершаются успешно. Запустив все тесты,
первые тесты прошли успешно, но на 4-м или 5-м тесте он завершается с ошибкой с этим сообщением ..... Предупреждение: превышен максимальный буфер stdout. Используйте --force, чтобы продолжить.
Похоже, что предел буфера команды запуска превышен, и дочерняя задача завершается.
Я решил эту проблему, изменив команду запуска webdriver-manager.
в Webdriver-manager я изменил
вернуть childProcess.spawn (winCommand, finalArgs,
{stdio: 'наследовать'});
к:
вернуть childProcess.spawn (winCommand, finalArgs,
{stdio: 'игнорировать'});
Есть ли другое решение, чтобы webdriver-manager не превышал буфер, или это можно настроить? Может ли функция отключения ведения журнала появления быть включена в будущую версию Protractor.
Извините за медленный ответ. Я чувствую, что это проблема с grunt - все, что делает webdriver-manager, - это пересылка вывода. Я не особенно знаком с тем, как grunt обрабатывает вывод, но, может быть, вы можете указать grunt игнорировать стандартный вывод?
Привет Джули
Безуспешно я смог игнорировать стандартный вывод из дочернего процесса в webdriver-manager. Хотя в выводе задачи grunt логи не появлялись, после некоторых тестов появлялось такое же сообщение об ошибке «stdout maxBuffer превышено». Я смог обойти проблему, только запустив задачу замены grunt, чтобы изменить stdio в диспетчере веб-драйверов.
Извините за медленный ответ. Я почти уверен, что эта ошибка связана с тем, что оболочка grunt использует команду Node child_process.exec
. Это позволяет использовать пользовательскую опцию maxBuffer
, которую вы должны увеличить. Вы можете сделать это так:
grunt.initConfig({
shell: {
foo: {
command: 'webdriver-manager start',
options: {
stderr: false,
execOptions: {
maxBuffer: 400*1024 // or whatever other large value you want
}
}
}
}
});
Закрытие, так как это серьезная проблема.
Самый полезный комментарий
Извините за медленный ответ. Я почти уверен, что эта ошибка связана с тем, что оболочка grunt использует команду Node
child_process.exec
. Это позволяет использовать пользовательскую опциюmaxBuffer
, которую вы должны увеличить. Вы можете сделать это так:Закрытие, так как это серьезная проблема.