2

新鮮な新しいプロジェクトでも、Qt Unit Test はアプリケーション出力ペインにすべてを 2 回、異なる色で (最初はマゼンタで、次に黒で) 書き込むことに気付きました。これは、stdout と stderr の両方に書き込むためだと思います。

これはQt 4.8 では発生しますが、Qt 5.2.2 では発生しません。Qt 5.2.2 では、黒いテキストのみが印刷されます。

例として、このテストのみを含む単体テスト プロジェクトの場合:

void Untitled15Test::testCase1()
{
    QVERIFY2(false, "Failure");
}

出力は次のとおりです(色が表示されるようにスクリーンショットを使用します):

ここに画像の説明を入力

この動作をオフにする方法はありますか? Qt4のバグですか?

4

1 に答える 1

1

Qt Bug Tracker サイトで検索した結果、これが実際にバグであることがわかりました。私はそれについて言及しているバグレポートを見つけました:

説明 Windows で「ターミナルで実行」オプションをオフにすると、qDebug の出力がアプリケーションの出力ペインに 2 回出力されます。これは、OutputDebugString と stderr を使用してメッセージを出力する qDebug によるものです。これを解決するには、次のいずれかを実行できます。 「ターミナルで実行」がオフの場合、OutputDebugString ストリームと stderr を別のペインに表示します。アプリケーションの出力ペインで OutputDebugString ストリームを非表示にするチェックボックスを提供します。QDebug が OutputDebugString と stderr を使用しないようにします。Qt Creatorによって設定された環境変数を使用している可能性があります。

これは、QTestLib が を使用CONFIG += console し、同時に「ターミナルで実行」チェックボックスをオフにして、このバグをトリガーしたために発生したと思います。

于 2015-03-18T15:18:06.767 に答える