ホームページ  >  記事  >  バックエンド開発  >  CLI プロンプトを対話的にテストするときに問題が発生し、スキャナーがユーザー入力を待機しません

CLI プロンプトを対話的にテストするときに問題が発生し、スキャナーがユーザー入力を待機しません

WBOY
WBOY転載
2024-02-13 21:18:181166ブラウズ

交互测试 cli 提示时出现问题,扫描仪不等待用户输入

php Xiaobian Yuzai は、インタラクティブなテストを実行すると、問題が発生する場合があることに気付きました。よくある問題の 1 つは、コマンド ライン インターフェイス (CLI) を使用して対話するときに、スキャナがユーザー入力を待機しないことです。これは、ユーザーに入力を求めるプロンプトが表示されると、プログラムはユーザーの応答を待たずにただちに実行を継続することを意味します。これにより、プログラムにエラーが発生したり、正しく実行されなくなる可能性があります。この問題の解決策は、適切な技術または方法を使用して、スキャナがユーザー入力を確実に待機し、対話テストをスムーズに行うことです。

質問の内容

プログラム出力に対するユーザー入力をシミュレートする、cli プロンプトを検証するテストを作成しようとしています。

scanner.scan を残りの書き込みを待機させるにはどうすればよいですか?

私がこれまでに持っているもの:

リーリー

期待される結果は次のとおりです: 0123

実際の結果は次のとおりです: 0

io.pipeのバージョンを試してみました

リーリー

結果: 致命的なエラー: すべてのゴルーチンがスリープ状態です - デッドロック!

解決策

パイプを使用すると、書き込みと読み取りが同期されます。一致する読み取りがないと、書き込みは完了できません。最初の書き込みをゴルーチンに移動します。そして、パイプの書き込み側を閉じて、スキャナーがスキャンを停止します。

リーリー

以上がCLI プロンプトを対話的にテストするときに問題が発生し、スキャナーがユーザー入力を待機しませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。