皆さんこんにちは
私は分度器とwebdriver-managerを使用しています。これは、ciでは2つのターミナルウィンドウを使用できないためです。
仕様:Windows 7、ノードv0.10.26、分度器0.22.0、分度器ランナー(分度器0.22.0を使用)
私は2つのタスク(grunt shell webdriver-managerstartとprotractor)と同時にgruntを使用しています。 テストを1つずつ実行すると、常に成功します。 すべてのテストを実行し、
最初のテストは成功しましたが、4番目または5番目のテストでは、このメッセージで失敗します.....警告:stdoutmaxBufferを超えました。 --forceを使用して続行します。
spawnコマンドのバッファ制限を超え、子タスクが終了したようです。
webdriver-manager spawnコマンドを変更することで、この問題を解決しました。
Webdriver-managerで変更しました
childProcess.spawn(winCommand、finalArgs、
{stdio: '継承'});
に:
childProcess.spawn(winCommand、finalArgs、
{stdio: '無視'});
webdriver-managerがバッファーを超えないようにする他の解決策はありますか、またはこれを構成できますか? スポーンロギングを無効にする機能は、Protractorの将来のリリースに含めることができますか?
応答が遅くなってすみません。 これはgruntの問題だと思います。webdriver-managerが実行しているのは出力の転送だけです。 gruntが出力を処理する方法については特に詳しくありませんが、gruntにstdoutを無視するように指示できますか?
こんにちはジュリー
成功せず、webdriver-managerの子プロセスからstdoutを無視することができました。 gruntタスクの出力にはログが表示されませんでしたが、いくつかのテストの後、同じエラーメッセージが「stdoutmaxBufferexceeded」と表示されました。 この問題を回避するには、grunt replaceタスクを実行して、webdrivermanagerの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
オプションが可能になり、これを増やす必要があります。 あなたはこれを次のように行うことができます:これはうんざりする問題であるため、閉じる。