我已经学习swift三天了。我计划在swift中培养我的技能,特别是在iOS开发方面。我的同事是一名iOS开发人员,我刚刚建议他在我们的应用程序中编写测试时学习swift --这对公司和我自己都有好处,这对我来说是有意义的。现在,我正在尝试遵循本教程https://medium.com/@ynzc/getting-started-with-tdd-in-swift-2fab3e07204b
按照教程的要求,在一个名为Quick的框架中重写测试,该框架与Rspec非常相似。我安装了CocoaPod,然后安装了Quick框架。使用.xcworkspaces而不是.xcodeproj。但是我还是得到了No such module 'Quick'的错误。
我已经做了研究,移除了pod,但仍然得到了错误。
platform :ios, '9.2'
target 'FizzBuzz' do
  use_frameworks!
  def test_pods
    pod 'Quick', '~> 0.9.0'
    pod 'Nimble', '~> 3.2.0'
  end
  target 'FizzBuzzTests' do
    inherit! :search_paths
    test_pods
  end
  target 'FizzBuzzUITests' do
    inherit! :search_paths
    test_pods
  end
end项目文件夹截图:

发布于 2017-07-24 19:43:19
我最近遇到了这个问题,目前的答案都没有为我解决这个问题。
出现此错误的原因是,我创建的测试/规范文件(NetworkSpec.swift)的目标成员身份是主应用程序目标,而不是测试目标。
为了更新它,我在xcode中打开了项目,在项目资源管理器中选择了文件,然后在右侧的属性窗口中选择了该文件。然后在目标会员区。我有两个选择。
我取消选中ProjectName (不是应用程序的真实名称)旁边的复选框,然后选中ProjectNameTests旁边的复选框,并重新运行测试。一切都按预期进行了。
发布于 2016-11-19 17:26:24
我遇到了同样的问题。我不需要将测试目标嵌套在我的podfile中。例如:
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
target 'MyAppName' do
    pod 'RealmSwift'
    pod 'GoogleMaps'
end
target 'MyAppNameTests' do
    inherit! :search_paths
    pod 'Quick'
    pod 'Nimble'
end
target 'MyAppNameUITests' do
    inherit! :search_paths
    pod 'Quick'
    pod 'Nimble'
end
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['SWIFT_VERSION'] = '3.0' # or '3.0'
    end
  end
end我使用的是Xcode 8.1。单击当前选择的方案。
选择“管理方案”。
选中test schemes和Quick旁边的复选标记。
再次单击您的应用程序方案。选择每个方案,然后转到Product > Build。最后,再次选择您的主应用程序方案。现在尝试在你的一个测试类中添加'import Quick‘。
发布于 2020-08-05 09:19:37
已解决的问题
我也遇到了同样的问题。测试文件夹中的文件看不到Nimble和Quick pods,尽管我的Podfile配置正确,测试文件的Target成员也设置正确。我无法同时导入两个Pod。
通过CLI在项目文件夹上运行以下命令为我解决了问题。
$ pod update Quick
$ pod update Nimble我的两个pods的Podfile实现供参考:
def include_test_pods
  pod 'Quick'
  pod 'Nimble'
endhttps://stackoverflow.com/questions/39819638
复制相似问题