1

背景
在处理这个答案Quick test framework时,我注意到在 Xcode 上正确设置并不是那么简单。就我而言,经过 3-4 次失败的尝试才最终获得了一个工作版本。而且,我不确定我之前的尝试哪里错了。或者更重要的是,为什么该线程中的提问者每次都会重复运行。然后他也尝试了几次才终于有了一个工作。

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

我以前是怎么做的:
以下是我创建工作的方法Quick framework on Xcode
1. 我按照RayWenderlich 网站上的 XCTest 文章中的步骤设置 XCTest 环境。2. 然后我按照安装 Quick
3 添加 Cocoa Pods 。然后按照设置 Xcode 4 中的说明进行操作。然后我在剩下的过程中进行了修改和即兴创作,搜索了之后遇到的每个问题,尝试这个那个直到有用。 (这些步骤包括添加快速框架以在我的目标的构建阶段链接二进制文件)


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

我的播客文件:

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
4

3 回答 3

1

通过 cocoapods 集成 Quick & 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 pod deintegrate && pod install

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

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

于 2017-05-30T08:14:10.090 回答
1

Git 子模块方式是实现这一目标的最精简和简单的方式。

请按照以下步骤从零开始:

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 供应商
  • 混帐初始化


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 子模块更新 --init --recursive


8. 按照步骤two进行Git Submodule section

  • 回到 Xcode 并打开 Workspace:
    • 确保选择了项目导航器
      • 文件 -> 将文件添加到:
        • 选择在步骤 7 中创建的 Quick 文件夹。
      • 文件 -> 将文件添加到:
        • 选择在步骤 7 中创建的 Nimble 文件夹。
      • 文件 -> 将文件添加到:
        • 在步骤 1 中选择您的 Xcode 项目。


9.在您的测试目标的构建阶段按照步骤three进行Git Submodule section链接。 10. 您应该能够按照快速文档中的示例进行操作Quick.frameworkNimble.frameworkLink Binary with Library

于 2017-05-30T13:31:30.837 回答
1

按照以下步骤可靠地设置 Quick and Nimble:

先决条件:

cocoapods 安装在你的机器上(安装指南

1)新建一个Xcode项目

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

2)选择Single View App(通常大部分应用都使用这个)—>下一步

  • 输入产品名称(应用程序名称)-(这里我们使用 Wea​​therForecast)

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

3)安装

打开终端

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

例如:输入终端 cd /Users/Documents/ WeatherForecast

4) 初始化 pod

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 测试。

文件—>新建—>组

重命名新组 ModelTests

突出显示您的新组

文件—>新建—>文件

选择 Swift 文件,按 Next

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

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

import Foundation

import Quick

import Nimble

@testable import WeatherForecast

class CurrentWeatherSpecs: QuickSpec {

}

*在此之后您可能会遇到错误

“没有这样的模块快速”</p>

“没有这样的模块 Nimble”</p>

以下步骤可修复错误

尝试以下操作:

  1. 打开 Xcode 方案列表

  2. 用“显示”勾选 Nimble and Quick 并关闭。

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

  4. 选择 Quick 作为方案并构建(cmd+B)

  5. 将方案更改回您的应用方案,看看错误是否消失并且自动完成工作

这是我不时要做的事情

于 2020-05-10T18:25:58.447 回答