最近我需要在执行时将C#代码中的一些特殊消息打印到Teamcity构建日志中,有人知道怎么做吗?
像:
// DoSomething的
//打印消息
希望在Teamcity构建日志中可以看到这些消息。提前致谢
答案 0 :(得分:2)
如果您希望某些消息显示在Team City
构建日志中,请说测试然后只需使用
Console.WriteLine("")
以下是将测试记录到TeamCity Log
的示例 [SetUp]
public void Init()
{
try
{
Console.WriteLine(string.Format("with_fresh_db Init Before RefreshController.StartRefresh: Time: {0:yyyy-MM-dd HH:mm:ssss}", DateTime.Now));
....
}
}
在这里你可以看到结果:
答案 1 :(得分:0)
您是否正在使用msbuild编译C#应用程序,或通过构建脚本执行C#应用程序?。
或者,您可以使用this来中继msbuild脚本中的消息。
答案 2 :(得分:0)
从Task继承并使用Microsoft.Build.Utilities:
Log.LogMessage(MessageImportance.High, "Bla-bla-bla");
或
Log.LogMessage("Test!");
答案 3 :(得分:0)
使用Service Messages,例如将此字符串写入stdout ##teamcity[message text='Hello from TeamCity']
将导致Hello from TeamCity
出现在构建日志中。
答案 4 :(得分:0)
我很难让Console.WriteLine从NUnit测试中写入构建日志。
我假设NUnit或TeamCity重定向了控制台流,因此来自被测系统的任何调用都不会被记录并弄乱构建日志。
我从测试方法暂时重定向回std,并出现在日志中。
// 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);