Protractor: webdriver-manager stdout maxBuffer превышает

Созданный на 7 мая 2014  ·  3Комментарии  ·  Источник: angular/protractor

Привет всем

Я использую 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 использует команду 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
                }
            }
        }
    }
});

Закрытие, так как это серьезная проблема.

Все 3 Комментарий

Извините за медленный ответ. Я чувствую, что это проблема с 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
                }
            }
        }
    }
});

Закрытие, так как это серьезная проблема.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

gamecheck80 picture gamecheck80  ·  3Комментарии

davidkarlsen picture davidkarlsen  ·  3Комментарии

sandersn picture sandersn  ·  3Комментарии

nt3rp picture nt3rp  ·  3Комментарии

vishalshivnath picture vishalshivnath  ·  3Комментарии