我是Xcode(以及一般的Mac)的新手,我正试图将我的一些代码库移植到OS X和iOS上运行。我有一大堆针对Google C ++测试框架(Google Test)编写的单元测试。我成功编译了框架,我可以运行一些测试,但我不确定如何在Xcode中查看彩色输出。
我习惯在Visual Studio中点击“Run”并立即看到一个控制台窗口(带有颜色),让我一眼就知道测试是通过还是失败。
我设法设置了“运行脚本”“构建阶段”,但似乎只输出到日志导航器,它消除了颜色,甚至是固定宽度的输出,使得一眼就看不到测试通过。在运行测试后,我也找不到显示日志的方法。当我这样做时,“全部输出”窗口中没有任何内容。
我玩过XcodeColors,但这似乎不适用于使用ANSI颜色代码的脚本。
此时如果在Xcode中无法完成,我不会感到惊讶。这将是理想的,但如果不是,是否有可能创建一个“运行脚本”,将在独立的终端窗口中运行测试?颜色在那里很好用。
感谢您的帮助!
答案 0 :(得分:3)
以下是指向“日志”窗口中文本着色的工具的链接。它是免费的,源代码在github中,所以你可以弄清楚它是如何工作的。第一个链接说它只使用简单的ANSI代码来完成这项工作。
http://deepitpro.com/en/articles/XcodeColors/info
https://github.com/robbiehanson/XcodeColors#readme
要从Xcode中启动执行,您可能需要为项目添加新目标。要添加目标,请单击您的项目,然后屏幕底部会出现“添加目标”按钮。我不确切地知道你正在执行什么,但根据你的问题,这是我最好的猜测:
一旦有办法执行单元测试,您只需要弄清楚如何将单元测试的输出路由到日志窗口。如果您可以修改Google Test项目并使其使用NSLog()
,那么这似乎是最简单的解决方案。您可以创建自己的日志记录方法,执行ANSI着色,然后将最终文本发送到NSLog()
。
已添加:好的。有趣的发现......在开始之前阅读所有内容。这是做什么的:
启动AppleScript编辑器。这是在LaunchPad中。将以下脚本粘贴到其中:
tell application "Terminal"
activate
do script "<your commands>" in window 1
end tell
你可以重复&#34;做脚本&#34;根据需要排队。用它来执行单元测试。在脚本编辑器中,执行另存为... /文件格式=脚本并将其保存到安全位置,就像文档目录一样。这将创建一个类似&#34; UnitTests.scpt&#34;。
的文件现在转到您的iOS项目。选择左上角的项目。选择Build Phases选项卡top-middle。单击右下角的Add Build Phase按钮。这是有趣的部分。
将Shell保留原样(&#34; / bin / sh&#34;)。添加一行:
osascript ~/Documents/UnitTests.scpt
这将在每次构建后执行脚本。
但这是我发现的有趣部分。单击Build Settings(顶部 - 中间)。确保选中全部(不是基本)。向下滚动列表以查找单元测试。打开测试主机。点击Debug旁边的+。您也可以在此处输入上述osascript
命令。您可以在此处执行单元测试,如果可以,输出可能会显示在日志中!让我知道会发生什么。
答案 1 :(得分:0)
我熟悉Java:JUnit + JCodecoverage,在移动应用程序:Android和iPhone我懒得用TDD开发,但如果我想开始比:
我会创建一个Hello Word应用程序,并打开JUnitTesting选项: 包括单元测试检查
这将创建一个测试应用程序/目标,你将能够运行它。 Android也是如此:你必须创建一个“测试项目” 一旦我做了并忘记了它是如何工作的,但是,还有其他的东西: - 长按Xcode(4.4)上的播放按钮,您将看到一个下拉菜单:运行,测试,配置文件,分析。
我不能提出这些,因为如果我按Shift + Cmd + 4来截图它会改变,但这里看起来像改变了的菜单:
恕我直言:对于银行,外汇,其他金融或军事(高安全性软件),我会使用测试驱动开发,代码覆盖率超过99%,但这些简单的3-4网络服务调用移动应用程序,显示公共数据浏览器中提供的只是浪费时间来开发测试并维护它!
很多时候我需要通过互联网连接测试而不需要。 更糟糕的情况是WI-FI连接,但是路由器不给IP或者让手机出去,但是如果我问手机状态:它是连接的......
GUI流程难以从单元测试中进行测试,这对我来说是有用的:数据来自Web服务并与内部缓存同步。我认为用manu测试做它仍然更便宜。