天天看点

XCTest.framework 统计单元测试以下将介绍如何使用 XCTest.framework   尽Xcode5

以下将介绍如何使用 XCTest.framework   尽Xcode5

步骤1:

点击工程项目

XCTest.framework 统计单元测试以下将介绍如何使用 XCTest.framework   尽Xcode5

步骤2:添加测试Targts

XCTest.framework 统计单元测试以下将介绍如何使用 XCTest.framework   尽Xcode5

选中后直接Next->Finish

添加后工程会多出一个目录

XCTest.framework 统计单元测试以下将介绍如何使用 XCTest.framework   尽Xcode5

步骤3:Build Settings设置注意:尽量项目中有Build Settings都要设置

近设置Debug=YES即可

XCTest.framework 统计单元测试以下将介绍如何使用 XCTest.framework   尽Xcode5

这个时候就可以 command+U 进行编译了

此时会提示错误

注释 XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__);

现在添加XCTest告一段落

步骤4:快速产生图形化报表

下载gcov IOS7下辅助刷新的类库:XCode5gcovPatch

地址:https://github.com/leroymattingly/XCode5gcovPatch

下载下来之后解压缩,将以下两个文件添加到工程:

XCTest+GCovFlush 仅添加到测试目标

GcovExtern.h 仅添加到测试目标

此时在command+U会报错

在XCTest+GCovFlush里

#import "GcovExtern.h"

#import <objc/runtime.h>

下载覆盖率工具:XcodeCoverage

地址:https://github.com/leroymattingly/XCode5gcovPatch

下载完成解压缩之后放到项目.xcodeproj文件所在的文件夹内(和.xcodeproj文件平级)

XCTest.framework 统计单元测试以下将介绍如何使用 XCTest.framework   尽Xcode5

然后下载lcov(下载地址:http://ltp.sourceforge.net/coverage/lcov.php)解压缩之后放到XcodeCoverage内。

XCTest.framework 统计单元测试以下将介绍如何使用 XCTest.framework   尽Xcode5

在测试Targets下添加Build Phases:RunScript 

XCTest.framework 统计单元测试以下将介绍如何使用 XCTest.framework   尽Xcode5

Script代码: XcodeCoverage/exportenv.sh 

XCTest.framework 统计单元测试以下将介绍如何使用 XCTest.framework   尽Xcode5

这样图形生成表也就添加完毕

此时clean工程,command+U 无报错后

打开终端,CD 到项目中XcodeCoverage目录下 运行./getcov

成功后将自动打开网页展示图形化页面点击下方图片红色部分可进入下一级

XCTest.framework 统计单元测试以下将介绍如何使用 XCTest.framework   尽Xcode5

步骤5:如何添加编写单元测试类

接下来我我要对OldClass进行操作

OldClass.h 

#import <Foundation/Foundation.h>

@interface OldClass :NSObject

@property (nonatomic,strong)NSString *con;

- (int)match:(NSArray *)otherCards;

@end

OldClass.m

#import "OldClass.h"

@implementation OldClass

- (int)match:(NSArray *)otherCards

{

    int score =0;

    for (OldClass *cardin otherCards)

    {

        if ([card.conisEqualToString:self.con])

        {

            score = 1;

        }

    }

    return score;

}

@end

在XCTest Tests下添加测试类,只需要连接测试Targets

XCTest.framework 统计单元测试以下将介绍如何使用 XCTest.framework   尽Xcode5

直接 Next->Finish

添加的测试类可以看到刚在添加XCTest时里面的函数是一样的,同样注释掉报错代码

编写测试函数(测试函数必须以test开头否则编译是不认为时测试函数)

- (void)testMatchesDifferentCardWithSameContents

{

   NSLog(@"==============%s doing work...",__PRETTY_FUNCTION__);

    OldClass *card1 = [[OldClass alloc] init];

    card1.con =@"one";

    OldClass *card2 = [[OldClass alloc] init];

    card2.con =@"one";

    NSArray *handOfCards = @[card2];

    int matchCount = [card1 match:handOfCards];

   XCTAssertEqual(matchCount,1,@"Should have matched");

}

此时clean工程,command+U 无报错后

打开终端,CD 到项目中XcodeCoverage目录下 运行./getcov

此时图形化界面就会多出你所新添加的测试类视图

在对已经完成的工程添加测试类时需要手动将文件添加到测试Targets Build Phases里,添加.m文件即可

XCTest.framework 统计单元测试以下将介绍如何使用 XCTest.framework   尽Xcode5

如有操作过程中出现各种报错问题可回复帖子交流经验,本人也是在无数个报错中弄明白这些问题

误喷!!!!