背景:
在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
答案 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
。
2.关闭(1)中的Xcode项目
3.创建新的Xcode工作区。档案 - >新 - >工作区。
4.打开终端/ Bash Shell / Cmd.exe
5.为GitHubProjectClones创建一个新的子目录。
6. cd到(5)中的子目录:
7.按照one
Git Submodule section
进行操作
8.按照two
中的步骤Git Submodule section
进行操作。
9.按照three
中的Git Submodule section
步骤,在测试目标的Quick.framework
构建阶段链接Nimble.framework
和Link 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文件,然后按
7)在新文件中,将内容替换为以下内容
import Foundation
import Quick
import Nimble
@testable import WeatherForecast
class CurrentWeatherSpecs: QuickSpec {
}
*此后,您可能会遇到错误
“没有这样的快速模块”
“没有这样的模块灵活”
以下步骤可修复错误
尝试以下操作:
打开Xcode方案列表
使用“显示”标记“灵活”和“快速”并关闭。
选择Nimble作为方案并构建(cmd + B)
选择“快速”作为方案并构建(cmd + B)
将方案更改回您的应用方案,看看错误是否消失并且自动补全有效
这是我不时要做的事情