最近我需要在执行C#代码时将一些特殊信息打印到Teamcity构建日志中,有人知道如何做吗?
例如:
//做某事
//打印信息
希望在Teamcity构建日志中看到这些消息。
提前感谢。
使用服务消息,例如将该字符串写入标准输出 ##teamcity[message text='Hello from TeamCity']
将在构建日志中显示 Hello from TeamCity
。
Log.LogMessage(MessageImportance.High, "Bla-bla-bla");
或者
Log.LogMessage("Test!");
我在使用NUnit测试时遇到了一个问题,就是无法通过Console.WriteLine将内容写入构建日志。
我猜测NUnit或TeamCity会重定向控制台流,以便系统调用不会被记录并且不会干扰构建日志。
我暂时将输出重定向回测试方法的标准输出,这样就可以在日志中看到输出了。
// redirect to stdio
var tw = Console.Out;
var sw = new StreamWriter(Console.OpenStandardOutput());
sw.AutoFlush = true;
Console.SetOut(sw);
// write
Console.WriteLine($"Console writeline from test");
// put it back
Console.SetOut(tw);