Protractor: webdriver-manager stdout maxBuffer überschreiten

Erstellt am 7. Mai 2014  ·  3Kommentare  ·  Quelle: angular/protractor

Hallo alle

Ich verwende Protractor und Webdriver-Manager-Start in einer einzigen Grunt-Aufgabe, da ich in ci keine 2 Terminalfenster verwenden kann.

Spezifikationen: Windows 7, Node v0.10.26, Protractor 0.22.0, Grunt Protractor Runner (der Protractor 0.22.0 verwendet)

Ich verwende Grunt gleichzeitig mit 2 Aufgaben - Grunt Shell Webdriver-Manager Start und Winkelmesser. Wenn Sie die Tests einzeln ausführen, sind sie immer erfolgreich. Alle Tests ausführen,
Die ersten Tests sind erfolgreich, aber beim 4. oder 5. Test schlägt es mit dieser Meldung .....Warnung: stdout maxBuffer überschritten fehl. Verwenden Sie --force, um fortzufahren.
Es scheint, dass die Puffergrenze für den Spawn-Befehl überschritten wird und die untergeordnete Aufgabe beendet wird.

Ich habe dieses Problem gelöst, indem ich den Befehl webdriver-manager spawn geändert habe.

im Webdriver-Manager habe ich geändert
return childProcess.spawn(winCommand, finalArgs,
{ stdio: 'erben' });

zu:
return childProcess.spawn(winCommand, finalArgs,
{ stdio: 'ignorieren' });

Gibt es eine andere Lösung für den Webdriver-Manager, um den Puffer nicht zu überschreiten, oder kann dies konfiguriert werden? Kann die Funktion zum Deaktivieren der Spawn-Protokollierung in eine zukünftige Version von Protractor aufgenommen werden?

Hilfreichster Kommentar

Sorry für die langsame Antwort. Ich bin mir ziemlich sicher, dass dieser Fehler darauf zurückzuführen ist, dass die Grunt-Shell den child_process.exec -Befehl von Node verwendet. Dies ermöglicht eine benutzerdefinierte maxBuffer -Option, die Sie erhöhen sollten. Sie können dies wie folgt tun:

grunt.initConfig({
    shell: {
        foo: {
            command: 'webdriver-manager start',
            options: {
                stderr: false,
                execOptions: {
                    maxBuffer: 400*1024 // or whatever other large value you want
                }
            }
        }
    }
});

Das Schließen ist ein Grundproblem.

Alle 3 Kommentare

Sorry für die langsame Antwort. Ich habe das Gefühl, dass dies ein Problem mit Grunt ist - alles, was der Webdriver-Manager tut, ist die Weiterleitung der Ausgabe. Ich bin nicht besonders vertraut damit, wie Grunt mit der Ausgabe umgeht, aber vielleicht können Sie Grunt sagen, dass es stdout ignorieren soll?

Hallo Julie
Ohne Erfolg konnte ich stdout aus dem untergeordneten Prozess im Webdriver-Manager ignorieren. Obwohl in der Grunt-Task-Ausgabe keine Protokolle erschienen, erschien nach einigen Tests die gleiche Fehlermeldung „stdout maxBuffer überschritten“. Ich konnte das Problem nur umgehen, indem ich eine Grunt-Replace-Task ausführte, um das stdio im Webdriver-Manager zu ändern.

Sorry für die langsame Antwort. Ich bin mir ziemlich sicher, dass dieser Fehler darauf zurückzuführen ist, dass die Grunt-Shell den child_process.exec -Befehl von Node verwendet. Dies ermöglicht eine benutzerdefinierte maxBuffer -Option, die Sie erhöhen sollten. Sie können dies wie folgt tun:

grunt.initConfig({
    shell: {
        foo: {
            command: 'webdriver-manager start',
            options: {
                stderr: false,
                execOptions: {
                    maxBuffer: 400*1024 // or whatever other large value you want
                }
            }
        }
    }
});

Das Schließen ist ein Grundproblem.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen