【发布时间】:2011-05-15 12:07:01
【问题描述】:
最近我需要在执行时将 C# 代码中的一些特殊消息打印到 Teamcity 构建日志中,有人知道该怎么做吗?
喜欢:
//做某事
//打印消息
希望 Teamcity 构建日志中可以看到这些消息。
提前致谢
【问题讨论】:
最近我需要在执行时将 C# 代码中的一些特殊消息打印到 Teamcity 构建日志中,有人知道该怎么做吗?
喜欢:
//做某事
//打印消息
希望 Teamcity 构建日志中可以看到这些消息。
提前致谢
【问题讨论】:
使用Service Messages,例如将此字符串写入标准输出##teamcity[message text='Hello from TeamCity'] 将导致Hello from TeamCity 出现在构建日志中。
【讨论】:
您是使用 msbuild 编译 C# 应用程序,还是通过构建脚本执行 C# 应用程序?
或者,您可以使用 this 中继来自 msbuild 脚本的消息。
【讨论】:
从 Task 继承并使用 Microsoft.Build.Utilities:
Log.LogMessage(MessageImportance.High, "Bla-bla-bla");
或
Log.LogMessage("Test!");
【讨论】:
我无法让 Console.WriteLine 从 NUnit 测试写入构建日志。
我假设 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);
【讨论】: