【问题标题】:CocoaPods Unit Testing QuestionsCocoaPods 单元测试问题
【发布时间】:2015-12-17 14:41:53
【问题描述】:

我刚刚创建了一个 Cocoapods 库,并希望为该特定库(而不是示例项目)设置一个测试目标。

这里有几个问题:

1) 是否有默认为库创建的默认测试目标?如果不是,为什么?


2) 我创建了一个测试目标(如果我对1) 的假设是正确的,即在创建库时没有创建测试目标),我如何在选择主库方案时测试库?


3) 我是否必须将所有需要测试的源文件添加到我的测试目标中才能对其进行测试?

【问题讨论】:

  • 在我下面的回答中,我可能会产生误解,您的问题更多是关于将您已经存在的测试包含在您在分发的 pod 中编写的库中?如有误解请见谅。
  • @diatrevolo 你一定是误会我了。例如,如果您查看 Alamofire(请参阅 Github 存储库),则在 Tests 文件夹中有针对该库的测试,用于测试库的功能。我只是想从 pod 中测试库,我认为对此没有太多误解......
  • 我想我只是不清楚你是否想在你的项目中测试例如 AlamoFire,或者如果在这个例子中你正在开发一个你想通过测试部署的库......
  • 如果问题是关于测试一般的库或框架,您可以创建一个逻辑测试目标,这就是我假设您如上所述所做的,并将您正在测试的所有文件添加到该目标目标,很像 Xcode 中的任何测试目标。
  • 我想测试我自己的 pod 的功能,仅此而已。我不想测试任何其他(第三方)pod,只是测试我自己库中的代码。

标签: ios swift unit-testing cocoapods


【解决方案1】:

编辑

我误解了这个问题,从上面的 cmets 中可以清楚地看出这一点。如果您在框架上有一个测试目标,并将所有必需的源添加到构建阶段的编译源步骤,您可以通过选择框架目标并使用 command-U 进行测试。另一方面,据我所知,库将需要一个单独的测试目标,但您可以将其添加到库方案的测试阶段,以使用 command-U 并选择您的 lib 目标进行测试(见下文)。

【讨论】:

  • 我之前确实走过那条路,但我无法让它与主机应用程序一起工作(仅在模拟器中支持逻辑测试,事后看来这是有道理的)。我认为这是正确的方法,尽管对我来说为什么 Cocoapods 没有首先创建测试目标并不明显......
  • 我不明白模拟器或设备在这里扮演什么角色。我不明白一个人对结果的影响与另一个人有何不同。有没有办法只运行测试而不会弹出“逻辑测试在此设备上不可用”的警报? IE。设置测试目标的宿主应用程序?对我来说,它只是一直说“无”
  • 在我看来逻辑测试不需要任何应用程序,那么为什么会弹出那个框?
  • 是的,它主要是语义...逻辑测试意味着最纯粹的单元测试,测试尽可能小的逻辑。应用程序测试意味着存在于应用程序的范围内,其中可能会出现更多问题。这就是为什么它需要安装一个应用程序,可以这么说。我认为,如果您的项目需要,将虚拟应用程序目标添加到您的 lib 以运行应用程序测试可能会起作用,以测试 lib 实现。在逻辑测试中,模拟器只是一个托管测试的地方,但这并不能解释为什么它们不能在设备上运行。
  • 嗯,这似乎仍然是一个矫枉过正的操作。为什么运行简单的单元测试如此乏味?没看懂
猜你喜欢
  • 2013-07-27
  • 2012-12-01
  • 2016-08-23
  • 1970-01-01
  • 1970-01-01
  • 2016-11-08
  • 2015-12-09
  • 2014-06-21
  • 2011-10-30
相关资源
最近更新 更多