まず第一に、私は標準出力を処分したくないということを指摘したいと思います...説明した動作が見られる理由を知りたいだけです。説明されている悪いコードを書きませんでした。
単体テストには .NET 4 を使用し、テスト対象のコードには .NET 3.5 を使用しています。テスト フレームワークとして MSTest for .NET 4 を使用しています。
最近、標準エラー出力を破棄するという失敗のためにエラーをスローしていたライブラリで作業しています。( LibTiff.NET ReadDirectory が System.ObjectDisposedException Only During Unit Tests を与えているを参照してください)。
これは相対的に彼らのコードがどのように見えるかです:
using (TextWriter stderr = Console.Error)
{
...
}
基本的に、単体テストを実行していないときは、標準出力を破棄しても破棄しませんが、単体テストを実行している場合は許可されます。
単体テストのコンテキストでそうする場合にのみ、標準出力が使い捨てである理由を誰かが説明できますか?