如何在Xcode 8上可靠地安装和设置快速测试框架?

时间:2017-05-29 14:28:24

标签: xcode xctest quick-nimble

背景
this answer工作时,我注意到在Xcode上正确设置Quick test framework并不是那么简单。在我的情况下,最终有一个工作版本需要3-4次尝试失败。而且,我不确定我以前的尝试在哪里出错了。或者更重要的是,为什么该线程中的提问者每次都可以重复运行。然后,他也花了好几次努力才最终有了一个工作。

问题
我问你们是否有可靠的方法使用Cocoa pods(或Carthage或Git Submodule)在Xcode上设置Quick Framework,直到运行一个你愿意分享的正常工作的Quick测试用例。

我之前是怎么做的
以下是我创建工作的方式Quick framework on Xcode
1.我按照XCTest article in RayWenderlich site中的步骤设置XCTest环境 然后我根据installing Quick添加Cocoa Pod 3.然后按照Setting up your Xcode中的说明进行操作 然后我在所有剩下的时间里进行了黑客攻击和即兴演奏,然后搜索我遇到的每一个问题,试试这个,直到它起作用。
(在这些步骤中包括添加Quick框架以在我的目标的构建阶段链接二进制文件)

我并不自豪地分享我的上述步骤,但我现在没有更好的方法。我希望通过提出这个问题找到更好的方法。这可能太过分了。

我的Podfile:

target 'PlayQuick' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!

# Pods for PlayQuick

target 'PlayQuickTests' do
    inherit! :search_paths
    # Pods for testing
    pod 'Quick'
    pod 'Nimble' 
end

end

3 个答案:

答案 0 :(得分:1)

整合Quick&通过cocoapods的Nimble开箱即用,没有任何问题(macOS Sierra,Xcode8.3.2,iOS 10.3 SDK,Swift 3.1,cocoapods 1.2.1)。

请务必安装最新的稳定cocoapods版本(gem update cocoapods)并致电pod install,而不仅仅是pod update。您还可以尝试通过拨打pod deintegrate && pod install从头开始重新集成您的广告连播。

也许在你的项目中有一个奇怪的构建设置或类似的东西。您可以使用原始测试项目验证这一点。

如果似乎没有任何效果,您应该上传您的项目(例如上传到GitHub),以便社区能够查明问题。

答案 1 :(得分:1)

Git submodule way是实现这一目标的最简单,最简单的方法。

按照以下步骤从零开始:

1.A。选中Include Unit Tests创建Xcode项目。

1.B。或者,您可以在现有项目上create unit test target

  • 打开测试导航器。
  • 点击左下角的+按钮,然后从菜单中选择New Unit Test Target ...:


2.关闭(1)中的Xcode项目
3.创建新的Xcode工作区。档案 - >新 - >工作区。

4.打开终端/ Bash Shell / Cmd.exe

5.为GitHubProjectClones创建一个新的子目录。

  • 例如:$ HOME / Developer / GitHubProjectClones


6. cd到(5)中的子目录:

  • mkdir供应商
  • git init


7.按照one

中的步骤Git Submodule section进行操作
  • 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


8.按照two中的步骤Git Submodule section进行操作。

  • 返回Xcode,打开Workspace:
    • 确保选中Project Navigator
      • 文件 - >将文件添加到:
        • 选择在步骤7中创建的快速文件夹。
      • 文件 - >将文件添加到:
        • 选择在步骤7中创建的Nimble文件夹。
      • 文件 - >将文件添加到:
        • 在步骤1中选择您的Xcode项目。


9.按照three中的Git Submodule section步骤,在测试目标的Quick.framework构建阶段链接Nimble.frameworkLink Binary with Library
10.您应该能够按照Quick Documentation

中的示例进行操作

答案 2 :(得分:1)

请按照以下步骤进行可靠的Quick and Nimble设置:

先决条件:

安装在您计算机中的

cocoapods(installation Guide

1)创建一个新的Xcode项目

Xcode —>文件—>新建—>项目

2)选择Single View应用程序(通常大多数应用程序都使用此应用程序)—>下一步

  • 输入产品名称(App NAme)-(此处使用的是WeatherForecast)

  • 为包含单元测试启用复选标记

3)安装

打开终端

移动到工作目录cd(项目文件夹的路径)

Ex:在终端输入 cd / Users / Documents / WeatherForecast

4)使用

初始化容器
Pod init

5)在您喜欢的文本编辑器中打开新创建的Podfile。

使用以下内容编辑podfile

platform :ios, '9.0'

target WeatherForecast’ do

  use_frameworks!

  # Pods for WeatherForecast

  target 'WeatherForecastTests' do

    inherit! :search_paths

    # Pods for testing

    pod 'Quick'

    pod 'Nimble'

  end

5)保存podfile。返回终端并

在终端

中输入pod install

6)这将安装您的新框架并创建一个pods项目。它还将生成一个工作区。现在,在处理项目时应使用新的工作空间。因此,如果您已经打开了项目,请先将其关闭,然后再打开WeatherForecasr.xcworkspace。

7)设置测试课程

在测试目标内,通过以下方式创建新的组和文件: 突出显示WeatherForecast测试。

文件—>新建—>组

重命名新的Group ModelTests

突出显示您的新组

文件->新建->文件

选择Swift文件,然后按

  • 将新文件命名为CurrentSpecs。按创建

7)在新文件中,将内容替换为以下内容

import Foundation

import Quick

import Nimble

@testable import WeatherForecast

class CurrentWeatherSpecs: QuickSpec {

}

*此后,您可能会遇到错误

“没有这样的快速模块”

“没有这样的模块灵活”

以下步骤可修复错误

尝试以下操作:

  1. 打开Xcode方案列表

  2. 使用“显示”标记“灵活”和“快速”并关闭。

  3. 选择Nimble作为方案并构建(cmd + B)

  4. 选择“快速”作为方案并构建(cmd + B)

  5. 将方案更改回您的应用方案,看看错误是否消失并且自动补全有效

这是我不时要做的事情