この質問はPython に関連しています: print ステートメントと subprocess.call() 出力が同期していないのはなぜですか? しかし、私の特定の状況では解決策が機能しません。最初にテストスイートの名前を出力し、次に特定のテストの名前を出力するリストを反復処理する for ループを持ち、その後にテストを実行するためのサブプロセス呼び出しを行う、Python で自動化テストプロセスを達成しようとしています。テストが終了したことを示す print ステートメントで終了します。最後に、これがテスト スイート名の末尾であることを示すステートメントを出力します。
つまり、=========テストスイートの開始: =========
---------テスト開始: ----------
テストを実行するためのサブプロセス呼び出し
---------テスト終了: ------------
テストのために繰り返す
=========エンドテストスイート: ==========
私の現在のコードは正常に動作しますが、その出力をファイルにリダイレクトすると、すべての印刷ステートメントが一番下に置かれます。他の質問のソリューションを使用すると、まったく逆になり、最初にすべての印刷ステートメントを出力してから、テストを実行します。sys.stdout.flush() を使用して、バッファリングをオフにしようとしましたが、どちらも同じことがわかりました。出力をリダイレクトしたり、ファイルに書き込んだりするときに、すべてを実行/コード内にあるとおりに正確に印刷するにはどうすればよいですか??