mas/Carthage/Checkouts/Quick/Documentation/zh-cn/InstallingQuick.md
2018-09-05 09:54:08 +10:00

6.6 KiB
Raw Blame History

安装 Quick

如果你的 Xcode 版本是7.1, 请使用新的 Quick--v0.9.0 写测试代码。 新发布的版本是基于 swift-2.0 这个分支开发的。

Quick 提供了定义例子和例子群的语法。 Nimble 提供了如 expect(...).to 的断言语法。 在写测试代码的时候,你可以使用它们中的任意一个或者同时使用它们。

下面是几种主要的方法,用来添加 Quick 支持:

  1. Git Submodules
  2. CocoaPods
  3. Carthage
  4. Swift Package Manager (experimental)

你可以选择其中一种方法,并按照下面的步骤进行。完成之后,就可以通过 import Quick 使你的测试支持 Quick 。

Git Submodules

通过以下步骤可以使用 Git 的子模块(submodules) 为项目添加 Quick 和 Nimble

  1. 添加子模块 Quick。
  2. 为你的项目新建一个 .xcworkspace 文件,如果原本已经有这个文件,则跳过此步骤。 (如何添加请看这里)
  3. Quick.xcodeproj 添加到项目的 .xcworkspace中。
  4. Nimble.xcodeproj 添加到项目的 .xcworkspace中。它所在的目录是: path/to/Quick/Externals/Nimble。 通过从 Quick 的依赖库中添加 Nimble (而不是直接添加为子模块),可以确保无论所用的 Quick 是什么版本,都能使用正确版本的 Nimble 。
  5. Quick.frameworkNimble.framework 添加到项目 "build phase" 选项页的 "Link Binary with Libraries" 列表中。

首先,你需要有一个 Git 子模块的目录,如果没有的话,就创建一个。假设这个目录的名称是 "Vendor" 。

第一步: 下载 Quick 和 Nimble 作为 Git 的子模块:

git submodule add git@github.com:Quick/Quick.git Vendor/Quick
git submodule add git@github.com:Quick/Nimble.git Vendor/Nimble
git submodule update --init --recursive

第二步: 把下载完的 Quick.xcodeprojNimble.xcodeproj 文件添加到项目的 .xcworkspace 上。 例如:下图是 Guanaco.xcworkspace 已经添加了 Quick 和 Nimble

第三步:Quick.framework 添加到测试目标(target)的 Link Binary with Libraries 列表中。你会发现有两个 Quick.frameworks;其中一个是 OS X 平台的,另一个是 iOS 平台的。

重复上面的步骤,添加 Nimble.framework

更新子模块: 如果你想把 Quick 和 Nimble 模块升级到最新版本,你可以在 Quick 目录下使用 pull 来更新,如下:

cd /path/to/your/project/Vendor/Quick
git checkout master
git pull --rebase origin master

你的 Git 仓库会自动同步更改到子模块中。如果你想确保已经更新了 Quick 子模块,那么可以这样:

cd /path/to/your/project
git commit -m "Updated Quick submodule"

克隆一个包含有 Quick 子模块的仓库: 当其他人克隆了你的仓库后,他们会同时拥有这些子模块。 他们可以运行 git submodule update 命令:

git submodule update --init --recursive

更多关于子模块的内容,可以参考这里

CocoaPods

首先,请把 CocoaPods 升级到0.36或者更高的版本,这样才能在 Swift 下使用 CocoaPods 。

然后在你的 Podfile 中添加 Quick 和 Nimble 。并且为了在 Swift 中使用 CocoaPods ,记得加上这一行: use_frameworks!


# Podfile

use_frameworks!

def testing_pods
    pod 'Quick'
    pod 'Nimble'
end

target 'MyTests' do
    testing_pods
end

target 'MyUITests' do
    testing_pods
end

最后,下载并将 Quick 和 Nimble 导入到你的测试中:

pod install

使用 Swift 1.2

最近发布的 Quick (0.4.0) 适用于 Swift 2 (Xcode 7),但是 Nimble (1.0.0) 适用于 Swift 1.2 (Xcode 6)。

如果你想在 Xcode 6 中使用它们,请使用以下这段代码:

target 'MyTests' do
  use_frameworks!
  pod 'Quick', '~>0.3.0'
  pod 'Nimble', '~>1.0.0'
end

Carthage

在一个项目中,测试所在的目标(target)并没有 "Embedded Binaries" 这部分内容, 因此必须把框架添加到目标的 "Link Binary With Libraries" 里,并且在 build phase 选项页中新建一条 "Copy Files" 把它们复制到目标的框架列表中。

因为 Carthage 生成的是动态的框架,所以你需要有一个合法的身份标识。

  1. Cartfile.private 中添加 Quick ,如下:

    github "Quick/Quick"
    github "Quick/Nimble"
    
  2. 运行 carthage update

  3. Carthage/Build/[platform]/ 目录下, 找到 Quick 框架和 Nimble 框架,把它们添加到测试目标的 "Link Binary With Libraries" 列表中:

  4. 在你的测试目标下新建一条 "Copy Files"

  5. 将 "Destination" 设为 "Frameworks",然后添加这两个框架:

注意,这并不是使用 Carthage 来管理依赖的唯一方法。更多的方法请参考 Carthage documentation

Swift Package Manager

随着 swift.org 上一个开源项目的出现, Swift 现在有了一个官方的包管理器。 尽管它刚问世不久,但是它首次使在非苹果平台上使用 Quick 成为了可能。经过初期的开发,现在已经可以利用 Swift Package Manager 为测试项目添加 Quick 支持了。但是由于这个包管理器正在开发中,在使用的过程中可能会出现一些问题。

在更新的帮助文档发布之前,这个项目阐述了如何在 SwiftPM 的 Package.swift 中添加 Quick 。

https://github.com/Quick/QuickOnLinuxExample

(不建议) 在真实的iOS设备上运行用Quick书写的代码

为了在设备上运行 Quick 形式的代码,你需要把 Quick.frameworkNimble.framework 作为 Embedded Binaries 添加到项目目标的 Host Application 里。 当以二进制文件的形式把框架添加到 Xcode 中Xcode 会自动为 App 添加 Quick 框架。