Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我如何在“Xcode”中查看Google测试的彩色输出;“所有输出”;窗户?_C++_Xcode_Unit Testing_Googletest - Fatal编程技术网

C++ 我如何在“Xcode”中查看Google测试的彩色输出;“所有输出”;窗户?

C++ 我如何在“Xcode”中查看Google测试的彩色输出;“所有输出”;窗户?,c++,xcode,unit-testing,googletest,C++,Xcode,Unit Testing,Googletest,我不熟悉Xcode(一般来说也不熟悉Mac),我正在尝试将一些代码移植到OSX和iOS上运行。针对谷歌C++测试框架(谷歌测试),我编写了大量的单元测试。我成功地编译了框架,并且可以运行一些测试,但是我不确定如何在Xcode中查看彩色输出 我习惯于在VisualStudio中点击“Run”,立即看到一个控制台窗口(带有颜色),让我一眼就能知道测试是通过还是失败 我已经成功地设置了一个“运行脚本”“构建阶段”,但这似乎只是输出到日志导航器,它会删除颜色,甚至是固定宽度的输出,因此很难一目了然地看到

我不熟悉Xcode(一般来说也不熟悉Mac),我正在尝试将一些代码移植到OSX和iOS上运行。针对谷歌C++测试框架(谷歌测试),我编写了大量的单元测试。我成功地编译了框架,并且可以运行一些测试,但是我不确定如何在Xcode中查看彩色输出

我习惯于在VisualStudio中点击“Run”,立即看到一个控制台窗口(带有颜色),让我一眼就能知道测试是通过还是失败

我已经成功地设置了一个“运行脚本”“构建阶段”,但这似乎只是输出到日志导航器,它会删除颜色,甚至是固定宽度的输出,因此很难一目了然地看到测试是否通过。在运行测试之后,我也找不到显示日志的方法。执行此操作时,“所有输出”窗口中不会显示任何内容

我曾经使用过XcodeColors,但对于使用ANSI颜色代码的脚本,这似乎不起作用

在这一点上,如果这不能在Xcode中完成,我也不会感到惊讶。这很理想,但如果不是,是否可以创建一个“运行脚本”,在独立的终端窗口中运行测试?那里的颜色很好用


谢谢你的帮助

我熟悉Java:JUnit+JCodecoverage,在移动应用程序:Android和iPhone中,我懒得用TDD开发,但如果我想开始的话:

我将创建一个Hello Word应用程序,并启用JUnitTesting选项: 包括已检查的单元测试

这将创建一个测试应用程序/目标,您将能够运行它。 Android也是一样:你必须创建一个“测试项目” 有一次,我忘记了它是如何工作的,但是,还有其他东西: -长按Xcode(4.4)上的播放按钮,您将看到一个下拉菜单:运行、测试、配置文件、分析

我不能展示这些,因为如果我按Shift+Cmd+4来截图,它正在改变,但在这里它看起来像是改变了的菜单:

IMHO:对于银行、外汇、其他金融或军事(高安全性软件),我会使用测试驱动开发,代码覆盖率超过99%,但那些简单的3-4 web服务调用移动应用程序,在浏览器中显示可用的公共数据,只是在浪费时间来开发测试和维护它

很多时候,我需要测试与互联网连接和没有。 更糟糕的情况是WI-FI连接,但路由器不提供IP或让手机出去,但如果我问手机状态:它已连接


GUI流很难通过单元测试进行测试,这对我来说很有用:从web服务获取的数据以及与内部缓存的同步。在我看来,使用手动测试更便宜。

这里有一个工具链接,该工具可以在日志窗口中为文本着色。它是免费的,源代码在github中,因此您可以了解它是如何工作的。第一个链接说它只是使用简单的ANSI代码来完成这项工作


要从Xcode中开始执行,您可能需要向项目中添加一个新目标。要添加目标,请单击项目,然后在屏幕底部有一个添加目标按钮。我不知道你到底在执行什么,但根据你的问题,以下是我最好的猜测:

  • MacOSX/Application/Cocoa AppleScript或命令行工具-创建一个简单的脚本或程序来执行单元测试
  • MacOSX/其他/外部构建系统-允许使用args执行外部“make”程序
一旦有了执行单元测试的方法,您只需要弄清楚如何将输出从单元测试路由到日志窗口。如果您可以编辑Google测试项目并使其使用
NSLog()
,那么这似乎是最简单的解决方案。您可以创建自己的日志记录方法,执行ANSI着色,然后将最终文本发送到
NSLog()

已添加:确定。有趣的发现。。。开始前阅读所有内容。下面是要做的:

启动AppleScript编辑器。这是在发射台。将以下脚本粘贴到其中:

tell application "Terminal"
    activate
    do script "<your commands>" in window 1
end tell
它将在每次构建后执行脚本


但这是我发现的有趣的部分。单击构建设置(上中)。确保选择了“全部”(而不是“基本”)。向下滚动列表以查找单元测试。打开测试主机。点击Debug旁边的+键。您也可以将上面的
osascript
命令放在这里。您可以在这里执行单元测试,如果可以,输出可能会显示在日志中!让我知道会发生什么。

呃,谢谢你抽出时间,但这并没有回答我的问题。我已经有了一系列针对谷歌测试的测试,这是一个C++项目。我真的不必编辑谷歌测试代码。这意味着我想要着色的任何东西都必须重写才能使用
NSLog()
,这对我来说是不可行的。谷歌测试已经用颜色输出,大概是使用ANSI代码,因为它在终端和控制台的窗口中以颜色显示。我想我设法将输出返回到输出窗口(不记得有多么不幸),但它不是彩色的。我本来希望XcodeColors能够帮助解决这个问题,但正如您所提到的,我认为它必须经过
NSLog()
:(如果我点击“运行”时您碰巧知道如何启动终端并运行测试(彩色),那么奖金是您的。正在处理它,但奖金将在1小时(或更短)后到期)。这大概就是脚本的样子:告诉应用程序终端/activate/do script“exec tests here”/end tell。如果你能把它具体化,我会非常感激,但既然你是唯一一个评论拯救matheszabi的灵魂,也是唯一一个回复我的人,那就是你的了。:)我对OSX还不熟悉,所以即使是简单的苹果
osascript ~/Documents/UnitTests.scpt