XCODE 建立测试工程

xcode mysql库_Mac+MySQL+Xcode数据库配置 [一、开发环境Mac OS X 10.9.2 64位、Xcode5.1、MySQL5.5.3764位MySQL安装目录为:/usr/local/mysql二、配置xcode连接mysql的编译选项1> 将mysql头文件目录添加到xcode头Mac下的数据库配置讲解很少,本文列出了我配置过程中的大多数可能错误和注意事项。-----------------------------------... 阅读详情
关于Xcode测试  
Xcode为你提供了丰富的软件测试功能。测试可增强工程的稳定性,减少bug,从而加快产品的分发和销售。一个测试良好的应用可提升用户的满意度。测试也可以帮你加快应用的开发,进一步说可让你少浪费精力和时间,并且可帮助协调多人开发。
 
概览
在本文档中,你将会学习如何使用Xcode 5的测试功能。XCTest替代OCUnit成为Xcode 5中新的测试框架。XCTest兼容iOS 7、OS X v10.8以及v10.9。
1.快速开始:Xcode 5使用测试导航面板(test navigator)来简化测试设置和运行,从而改进和自动化测试项目配置。
2.Xcode Server和Continuous Integration:Xcode测试可以使用bots进行配置,从而使设备自动连接到运行OS X Server的Mac上。
3.现代化:Xcode 5包含现代化的辅助工具可方便地把使用OCUnit测试的项目转为使用XCTest测试。
 
前提
你应该熟悉应用设计和编程概念。
 
推荐阅读
你可以查看“Testing Apps and Frameworks”示例代码熟悉各种各样的方法案例和使用异常,以鉴定并报告错误的API用法。
还可以查看WWDC 2013上的Xcode测试性能:Testing in Xcode 5 (409)
 

快速开始
(本章由CocoaChina翻译小组成员dada翻译  github地址  )
 
本文的目的在于让测试成为你软件开发的重要组成部分,并使测试更方便并易于使用。
 
Test Navigator 测试导航栏
测试时我们会频繁使用Xcode5的测试导航栏。
 
测试导航是Xcode工作区的一部分,被设计用来方便的创建、管理、运行和审核测试功能。点击导航的选择栏,在问题导航和调试导航栏的中间那个就是测试导航。当你的工程定义了一组测试功能,你会在导航栏看到如下图所示:
上面的测试导航展示了一个样板工程中的测试包、类和方法的分级表。这个工程是一个计算器应用。计算器引擎实现为一个框架包。你可以 SampleCalcTests 测试包的分级的顶部看到应用中的测试代码。
 
注意: Xcode的目标生成产品。Xcode的测试目标生成测试包并展示在测试导航栏中。
 
如果你的测试使用存储数据文件、图片,和其他的类型,则可以把它们添加到测试包中,并使用 NSBundle 的API在运行时访问。和测试类一同使用 +[NSBundle bundleForClass:] 来保证测试类从包中取得正确的数据。更多的信息可见NSBundle Class Reference.
 
Xcode schemes 控制那些编译的内容。Schemes也可以控制可用的测试方法来执行测试操作。你可以在测试导航面板列表中通过Control+单击项目来启动或关闭测试包、类和方法,或者从快捷菜单中启用或者关闭测试,也可以在scheme中启用或者关闭测试。
此视图中的激活的测试包是 SampleCalcTests 。 SampleCalcTests 包括了一个测试类,总共有9个测试方法。 当你按住表中任何一个项目的箭头,运行按钮 会展示右边的项目名。这是比较快捷的方式运行包里所有的测试或者任何独立的测试。测试返回通过或失败结果给Xcode。当测试被执行,标识会更新从而向你展示结果,绿色的对勾标记是通过,红色的X为失败。在下面的测试导航面板中,两个测试被判定为失败。
点击列表中的任意测试类或测试方法都会在源码编辑器中打开测试类。测试类和方法标记在源码编辑器的侧栏中,和标记放在一起,和在测试导航面板中的工作方式相同。测试失败在源码编辑器中相关的断言处展示结果字符串。
 
测试导航面板底部是添加按钮 (+) ,还有一个过滤控制器。你可以缩小范围,比如只在活跃的scheme中测试或者只测试失败的测试,也可以通过名称筛选测试。
 
更多测试导航详细信息可见 Test Navigator Help。
 
给你的应用添加测试
在Xcode5中创建新的应用和框架/库类会预配置一个测试目标。当你打开新工程,在测试导航面板上可以看到一个测试包、一个测试类和一个测试方法的模板。但是如果打开一个比较老的版本的Xcode的工程就不会有测试目标了。下面的工作流程展示了一个假定没有集成测试目标的工程。
 
创建测试目标 
打开测试目标,点击左下角的(+)按钮,从菜单中选择New Test Target。 
根据你的设置偏好和需求,在新目标助手中编辑Product Name和其他参数。
点击完成按钮来添加目标,测试导航面板中包含了模板测试类和一个测试方法。 
运行测试并查看结果
现在你已经把测试加到了工程中,你会想要运行这些测试来做一些有用的事。但首先要在测试导航面板中把鼠标悬停在  SampleCalcTests 测试类上并点击运行按钮来运行所有的测试方法,在测试导航面板中抛出了一个错误来。点击  testExample 方法可以看到下面图中的测试结果、源代码和高亮的错误情况:
测试失败的原因是测试的模板类包含了一个默认的测试方法  XCTFail() ,一个强制判为失败的断言。
 
编辑测试代码然后继续运行
因为这是一个计算器应用的样板工程,你可能要在最开始的时候检查它是否能正确执行加法。因为测试编译到app项目里面,不管多复杂,你都可以按照你的需求添加所有的上下文和其他所需信息来执行测试。
 
插入下方的#import和实例变量声明到  SampleCalcTests.m 文件中 
  1. #import <XCTest/XCTest.h> 
  2. // 
  3. // Import the application specific header files 
  4. #import "CalcViewController.h" 
  5. #import "CalcAppDelegate.h" 
  6.  
  7. @interface CalcTests : XCTestCase { 
  8. // add instance variables to the CalcTests class 
  9. @private 
  10.     NSApplication       *app; 
  11.     CalcAppDelegate     *appDelegate; 
  12.     CalcViewController  *calcViewController; 
  13.     NSView              *calcView; 
  14. } 
  15. @end 
 
给测试方法一个描述性名称,比如  testAddition ,然后添加到implementation资源中。
  1. - (void) testAddition 
  2. { 
  3.    // obtain the app variables for test access 
  4.    app                  = [NSApplication sharedApplication]; 
  5.    calcViewController   = (CalcViewController*)[[NSApplication sharedApplication] delegate]; 
  6.    calcView             = calcViewController.view; 
  7.  
  8.    // perform two addition tests 
  9.    [calcViewController press:[calcView viewWithTag: 6]];  // 6 
  10.    [calcViewController press:[calcView viewWithTag:13]];  // + 
  11.    [calcViewController press:[calcView viewWithTag: 2]];  // 2 
  12.    [calcViewController press:[calcView viewWithTag:12]];  // = 
  13.     XCTAssertEqualObjects([calcViewController.displayField stringValue], @"8", @"Part 1 failed."); 
  14.  
  15.    [calcViewController press:[calcView viewWithTag:13]];  // + 
  16.    [calcViewController press:[calcView viewWithTag: 2]];  // 2 
  17.    [calcViewController press:[calcView viewWithTag:12]];  // = 
  18.     XCTAssertEqualObjects([calcViewController.displayField stringValue], @"10", @"Part 2 failed."); 
  19. } 
现在,点击运行按钮运行  testAddition 方法。
注意:测试导航的列表的改变,反应了 testExample 已经被替换为 testAddition 。
 
这里仍有错误,看下面的代码,第一部分成功,第二部分有问题。仔细观察,错误很明显:字符引用"11"多了1。改为“10”就能测试成功了。
相同的通用代码使用 setUp() 和 tearDown()方法
Xcode运行测试方法一次测试所有测试包中的测试类。在这个小例子里只有一个测试方法被实现了,这里需要访问三个计算器应用对象变量的功能。如果在该类中写了4个或5个测试方法,你会发现你在每一次测试方法获得应用的对象状态中,重复了相同的代码。XCTest框架为测试类提供了实例方法  setUp  和   tearDown ,你可以用它在每个测试方法运行之前或者之后运行通用代码的调用。
 
setUp和tearDown很简单。在  testAddition 资源里  Mac_Calc_Tests.m ,在第四行用// obtain the app variable for test access 开头,并将它们粘贴到模板提供的默认的  setUp 实例方法中。
  1. - (void)setUp 
  2. { 
  3.     [super setUp]; 
  4.     // Put setup code here. This method is called before the invocation of each test method in the class. 
  5.  
  6.    // obtain the app variables for test access 
  7.    app                  = [NSApplication sharedApplication]; 
  8.    calcViewController   = (CalcViewController*)[[NSApplication sharedApplication] delegate]; 
  9.    calcView             = calcViewController.view; 
  10. } 
现在使用少的重复代码添加第二个测试方法:  testMultiplication 以及其他。
 
总结
当你看完这篇简短的快速开始,会发现向工程添加测试很简单。这里有几个要注意的地方:
1.Xcode配置好了大部分基本的测试设置。当你添加一个测试目标,Xcode会为项目创建测试包文件,添加测试包到测试导航面板,为工程添加XCTest框架,并且为测试类和方法提供模板。
2.测试导航面板可以很方便的定位和编辑测试方法。你可以使用导航面板里的指示按钮快速运行测试,或在测试类实现打开时直接在资源编辑器中运行。当测试失败,测试导航面板中的标识跟源码编辑器中错误的地方相对应。
3.单个测试方法可以包括多个断言,导致单个通过或失败结果。这个方法可让你根据项目需要创建简单或者非常复杂的测试。
4.  setUp  和   tearDown 实例方法为你提供了一种途径来把相同的代码用在很多个测试方法中,从而获得更高的一致性,并简化调试。
macos搭建appium-iOS自动化测试环境 手把手教你如何在macos系统上搭建iOS手机UI自动化环境 阅读详情

相关推荐

macOS下基于FFMPEG的播放器(一)

注:开始时,不知道依赖哪些库,只能编译,提示缺少啥,就在这里添加有行。在xcode工程里开发依赖的framework。clang 和 g++都行。添加头文件和库的查找地址。

yinshipin007的博客 260

使用xcode5做单元测试

http://www.cocoachina.com/newbie/basic/2014/0714/9130.html 关于Xcode测试  Xcode为你提供了丰富的软件测试功能。测试可增强工程的稳定性,减少bug,从而加快产品的分发和销售。一个测试良好的应用可提升用户的满意度。测试也可以帮你加快应用的开发,进一步说可让你少浪费精力和时间,并且可帮助协调多人开发。  

openglnewbee的博客 2549

Unity3D打包生成xcode工程以及xcode工程真机调试

Unity3D打包生成xcode工程及xcode工程真机调试 1.配置Unity项目PlayerSetting 2.由Unity导出IOS项目为XCode工程 3.配置XCode工程 4.真机调试 开发环境 MAC环境:Xcode环境 9.2 (9C40b) Unity环境:Unity5.6.3 2.配置Unity项目PlayerSetting 快捷键 加粗 Ct...

visionTw的博客 7560

Xcode 5 单元测试(一)使用XCTest进行单元测试

在Objc.io #1的Testing View Controllers中讲解的就是单元测试的相关内容。本文说下如何通过Xcode 5中集成的XCTest框架进行单元测试。首先看看什么是单元测试,然后简单地讲解下XCTest的使用。

Jymn_Chen 2万+

【VS Code+Verilog+Vivado使用】(1)常用插件

VS Code + Verilog + Vivado联合使用说明

XDUryan的博客 5637

信号系统核心概念:卷积、傅里叶变换与抽样定理的工程实践指南

信号与系统是理解现代电子、通信与数字处理技术的基石。其核心在于通过数学工具对物理世界进行建模与分析,其中卷积运算揭示了线性时不变系统对任意输入的响应可分解为冲激响应的叠加,这一原理极大提升了系统测试与分析的效率。而傅里叶变换则提供了从时域到频域的映射,将复杂的时域卷积运算转化为频域的简单乘法,是实现频谱分析、滤波设计的关键。抽样定理则架起了模拟与数字世界的桥梁,明确了无失真数字化的条件。这些基础理论共同构成了滤波器设计、音频处理、图像分析及通信系统等广泛工程应用的技术支柱。本文聚焦于卷积与傅里叶变换,结合冲

weixin_30788619的博客 629

Xcode--OCUnit

Xcode中集成了单元测试框架OCUnit,可以完成不同侧重点的测试。Xcode下的单元测试分为logic uint tests和application unit tests。 logic uint tests在编译阶段进行,并且只能在模拟器中进行,并且需要配置一个单独的schemes来运行。主要是针对数据层的各个模块进行测试,如果数据层的模块划分比较理想解耦相对彻底,则可以通过逻辑单元测试

fhbystudy的专栏 845

NPP/VIIRS夜间灯光数据下载和介绍

夜间灯光数据作为当前比较火热的研究数据,与其他遥感数据不同,它是通过DN值来体现所携带的信息,最常用的使用月度数据。 该数据数据量大,下载慢,相对来说较难快速获取。 一、数据下载 美国国家海洋大气管理局NOAA下属的NCEI国家环境信息中心Earth Observation Group。 二、月度数据文件介绍 从网站上下载的逐月的灯光数据文件是压缩包的形式,每月的数据包括vcm, vcmsl两个版本的压缩包,其中vcm版本排除了受杂散光影响的数据,vcmsl版本为辐射值经过杂散光校正程序后的数

端木宛白的博客家园 7376

Xcode配置测试环境和线上环境

前言:每次app在Release和Debug模式下都要来回改正式与测试的 BaseUrl以及其他的url或者常量,有可能忘记改,我们就上线,结果就可想而知,于是为了避免手动更改的麻烦和犯错误,我们才去配置环境。 使用.h文件配置宏定义 一般我们会用头文件配置环境,在需要使用的时候导入头文件即可,这样会更加简洁,职能更加专一,更好维护, 代码如下: #ifdef DEBUG #define Ba...

weixin_34104341的博客 655

单细胞分析(19)—— 单细胞转录组基因集评分方法

在单细胞RNA测序(scRNA-seq)分析中,基因集评分(Gene Set Scoring)是一项关键任务,能帮助研究者识别细胞功能状态

阅读文献,记录学习笔记 2439

1.全基因组重测序数据分析介绍

二代测序原理及fastq数据解读、全基因组重测序数据分析内容

weixin_53682198的博客 1881

在 Xcode 中进行自动化测试 (1/2)

来自 Ray: 这是 iOS 6 盛宴 中的第 10 个教程! 这篇教程来自我们的新书 iOS 6 By Tutorials。Charlie Fulton 是这个章节的作者 – 是教程团队的新成员, 也是我的一个朋友。 这是 iOS 教程团队成员 Charlie Fulton 的一篇博客, 一个全职的 iOS 开发者, 喜欢和家人一起打猎, 钓鱼。 所有的开发者都需要测试他

3943

使用CubeMX生成的项目在Keil下添加DSP库并包含arm_math头文件后报错的解决办法

问题描述: 最近使用Cube生成工程后,在Keil中使用Manage Runtime Environment即绿色小饼干按钮添加CMSIS的DSP库后编译报错。很有意思的是,STM32论坛上有外国朋友报告的同样的错误,都是30个Errors,5个Warning。 问题分析: 参考国内论坛某帖子(具体想不起来了),认为因该是Cube复制了库后,Keil从原始Packs目录下引用DSP库导致和Cub...

qq_32256951的博客 7001

xcode PCL 工程建立及测试

1、首先需要安装pcl,这里采用的homebrew的方式进行安装,具体链 Installing on Mac OS X using Homebrew http://www.pointclouds.org/documentation/tutorials/installing_homebrew.php 2、建立Xcode工程,这个地方需要注意的采用C++模式,首先就是建立header searc

gflytu的专栏 4235

CloudCompare如何进行二次开发?

CloudCompare源代码编译成功后,即可进行二次开发,可以通过修改源码或者制作插件实现二次开发。本文二次开发采用修改CloudCompare的源代码的方式,分别修改mainwindow.ui、mainwindow.h、mainwindow.cpp,实现扩展功能,克隆选中的点云。

【cacrle】的博客 5331

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【ios】xcode工程建立和配置(ios真机测试方法)

Date: 2018-9-27 0、参考 https://blog.youkuaiyun.com/snaill/article/details/4092748 1、xcode和ios基本概念 1.1 clang    Clang是一个C++编写、基于LLVM、发布于LLVM BSD许可证下的C/C++/Objective-C/Objective-C++编译器。它与GNU C语言规范几乎完全兼容(当然,也有...

优快云明星博主,认证博客专家,视频、Matlab领域优质创作者。 1053

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Unity3D导出为Xcode工程

打开一个Unity 3D工程,需要下载Unity3D开发工具(这里为测试新建FirstUnity工程) 下载地址为:https://unity3d.com/cn/get-unity/download 2.选择左上角File下面的BuildSettings选项进入 3.进入到BuilidSettings中选择自己想要导出的平台环境(这里选择的ios),因为是支持全平台导出的,这里可能在选择相应...

weixin_34413357的博客 1660

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【调试工具】之IOS真机测试

原文链接:https://blog.youkuaiyun.com/SoaringLee_fighting/article/details/82874618 序 本文旨在怎么通过xcode工程进行ios真机测试。 1. xcode工程建立和配置 1.1 xcode新建工程: 1.1.1 用于单元测试 File–&amp;amp;amp;amp;amp;amp;gt;new—&amp;amp;amp;amp;amp;amp;gt;Project—&amp;amp;amp;amp;amp;

walkingMa的专栏 1204

ios-SDK开发(1)

之前根据公司需要开发过SDK,但是没咋写过博客,当时提供给其他公司的是.a文件的,但是其实也有framework文件,今天就做些framework的简单demo。 1.创建工程 在这里我其实是建议先建个文件夹 我准备把新建的SDK放在SDKProject—&gt;SDKdemo文件夹里面 然后开始新建Xcode : 这里的SDK起的名字叫FirstSDK,这两步已经创建好了framework...

Warren_Zhang的博客 1163

如何将Unity游戏构建到iOS设备

介绍 本文章将构建一个示例Unity项目到iOS设备进行测试,原文出自Unity官网教程Building your Unity game to an iOS device for testing,但略做修改。 本文章不包含构建一个可分发到其他设备的游戏,或向App Store提交游戏。 自2015年Xcode 7发布以来,可用免费的Apple ID来构建应用(包含使用Unity制作的游戏)。

Ts1030746080的专栏 1万+

ios手机写python_在iOS app中运行Python文件(Swift+Objective C+Python)

在iOS app中运行Python文件(Swift+Objective C+Python),最近项目中需要在iOS app中运行Python文件,在网上找到一些资料,现在主要有两个组织在从事跨平台运行python的开发工作,一个是Beware:https://pybee.org/。 一个Kivy:https://github.com/kivy/kivy.于选择Pybee的框架进行了一下测试,首先需...

weixin_39686634的博客 396

ios上运行python_IOS开发入门之在iOS app中运行Python文件(Swift+Objective C+Python)

本文将带你了解IOS开发入门在iOS app中运行Python文件(Swift+Objective C+Python),希望本文对大家学IOS有所帮助。在iOS app中运行Python文件(Swift+Objective C+Python),最近项目中需要在iOS app中运行Python文件,在网上找到一些资料,现在主要有两个组织在从事跨平台运行python的开发工作,一个是Beware:...

weixin_39686634的博客 532

在Xcode 中如何打包测试版 给测试工程师使用

在Xcode 中如何打包测试版 给测试工程师使用 1》创建发布证书; iOS distrution cer 2》创建测试描述文件; AdHoc provisioning file 测试描述文件的创建主要包含三个要点 首先:选择app ID 注意选择的appID 要与Xcode中的bundleID相同; 其次:选择第一步中创建的发布证书; 最后:选取已经注册UDID的iP

u013915422的博客 7030

XCode 下的 iOS 单元测试

XCode 下的 iOS 单元测试 罗朝辉 (http://blog.youkuaiyun.com/kesalin) CC 许可,转载请注明出处 XCode 内置了 OCUnit 单元测试框架,但目前最好用的测试框架应该是 GHUnit。通过 GHUnit + OCMock 组合,我们可以在 iOS 下进行较强大的单元测试功能。本文将演示如何在 XCode 4.2 下使用 OCUnit, GHUni

飘飘白云 1万+

如何运用Xcode创建单元测试UnitTest

如何运用Xcode创建单元测试UnitTest 一. UnitTest背景知识 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开

KindAzrael的专栏 6038
上一篇: 一个iOS框架介绍:MKNetworkKit
下一篇: 程序员如何动手打造属于自己的智能家居
临红尘
博客等级 码龄19年 10粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值