控制台颜色背景颜色不变

时间:2017-02-13 17:31:41

标签: c# .net unit-testing windows-console

我有一个静态方法,如果它在测试环境下运行,我想用它来更改Console.BackgroundColor。当颜色改变后我在线上断裂时仍然设置为黑色。

public static void LogError(string err)
{
    if (IsRunningFromMspec)
    {
        Console.BackgroundColor = ConsoleColor.DarkRed;
        Console.WriteLine(" &&&" + err);
    }
    else if (MyTracer.MyLevelSwitch.TraceError && !string.IsNullOrEmpty(err))
    {
       Trace.TraceError(" &&& - " + err);
    }
}

1 个答案:

答案 0 :(得分:5)

Console.BackgroundColor不会更改整个控制台窗口的背景颜色。它只会在设置该颜色后更改所写文本的背景颜色。

因此,您的输出src/main/resources/foo/bar/Extension/config.jelly现在将使用Console.WriteLine(" &&&" + err);背景编写:

enter image description here

不幸的是,我现在还不知道以编程方式更改整个控制台窗口颜色的方法。

正如Ian H.在评论中指出的那样,将整个控制台窗口的背景设置为所需的颜色调用

DarkRed
更改颜色后

。但是,这当然会删除您之前写的所有内容,这些内容可能不是您想要的。