【问题标题】:MonoTouch - better console output in XCode's organizerMonoTouch - XCode 管理器中更好的控制台输出
【发布时间】:2012-02-20 16:49:17
【问题描述】:

我们一直在玩新的 MonoTouch NUnit 测试项目,非常棒。

我们已经在 CI 软件中在 Windows 上运行了其中一些测试,并且我们在控制台上打印了很多内容以查看测试期间出了什么问题。

如果我们为 MonoTouch 构建并运行这些测试,并在 XCode 的管理器中查看控制台,它们看起来很丑:

Feb 20 10:34:57 unknown UIKitApplication:com.ourcompany.ourapp[0xab78][8329] <Notice>: [Our usually pretty rainbows and unicorn console output here]

有没有办法在 iOS 中清理这个输出?至少用更有意义的东西替换“未知”,或者完全删除它和 UIKitApplication 会很好。

此外,如果可以解决此问题,我们不介意以某种方式调用 NSLog 而不是 Console.WriteLine

【问题讨论】:

    标签: c# ios xcode xamarin.ios touch.unit


    【解决方案1】:

    我认为不需要更改现有测试的最简单方法是:

    • 使用可选 network logger。这会将每个测试结果发送到套接字服务器,将它们与来自 iOS 设备的其他日志分开;和

    • 使用TouchRunner.Writer 作为参数调用Console.SetOut(在AppDelegate.cs 中)。这应该(现在未经测试;-)将您对控制台的所有现有写入记录到网络记录器中。

    【讨论】:

    • 有没有办法修改写入 XCode 控制台的内容?如果需要,我们需要的重要信息可以很容易地通过与Console.WriteLine 不同的方法。网络记录器是一个不错的选择,但我认为我们的一些 QA 测试人员在设置它时会遇到麻烦(他们不是编码人员)。如果我可以说打开 XCode 并查看控制台中的错误会更容易。
    • 也许,我从来没有看过 Xcode 控制台。 OTOH Rolf 补充说(我仍然需要写博客)更好地支持在 Touch.Unit 中自动执行测试。这可以让您更轻松地编写执行脚本(包括服务器设置)。我会尽我所能尽快记录这个问题 - 但如果其他人可以提供基于 Xcode 的解决方案,你可以让这个问题无人回答(我很乐意自己学习 ;-)
    【解决方案2】:

    据我所知,没有办法修改写入 Xcode 控制台的内容,因为每行开头的内容都是系统自动编写的。

    您可以在终端中使用 mtouch、grep 和 sed 来做一些魔术:

    /Developer/MonoTouch/usr/bin/mtouch --logdev | grep com.yourcompany.yourapp | sed 's/.*<.*>: //' 
    

    【讨论】:

      猜你喜欢
      • 2015-07-28
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      相关资源
      最近更新 更多