【问题标题】:Separate scheme for Performance Test in xcodexcode中性能测试的单独方案
【发布时间】:2018-11-06 07:15:55
【问题描述】:

除了测试代码更加隔离之外,在 Xcode 中创建单独的 Performance Test scheme 有什么好处(类似于 Unit TestUI Test 这样的方案)?是否值得为单个 Xcode 项目保留 3 个测试方案?

我的意思是,即使我在同一个单元测试包(方案)中的self.measure{ } 块中编写所有性能测试用例,一旦项目增长并在詹金斯?

实施Performance testing in Xcode的行业标准是什么?每个人都在同一个单元测试包中进行性能测试吗?为什么?为什么不?

【问题讨论】:

    标签: ios swift unit-testing jenkins xcode-ui-testing


    【解决方案1】:

    首先要注意schemetarget不是一回事:

    target 指定要构建的产品,并包含从项目或工作区中的一组文件构建产品的说明。

    正如您所说,当涉及到测试时,目标用于对一组测试进行分组,即所谓的测试包。拥有多个测试目标可以让您轻松地只运行所有测试用例的特定子集。因此,对于在特定测试目标中分离性能测试特别有用,因为这些测试通常需要更多时间来运行。因此,能够只运行更快的单元测试是很有用的。

    scheme 定义了要构建的目标集合、构建时要使用的配置,以及要执行的测试集合。

    (重点是我的)这是诀窍,也是您问题的答案:对于性能测试,有一个专门的方案来运行它们特别重要,因为这使您可以使用不同的构建配置构建应用程序。您想这样做,因为您想在发布模式下编译您的应用程序,因此您的性能测试针对优化的构建运行Scheme with app built in specific build config

    准确地说,对于性能测试,您需要添加一个与 Release 类似的新构建配置,但要启用“启用可测试性”构建标志。 测试链接到您的应用需要此“启用可测试性”。因此,在您的项目中,您将拥有 3 种构建配置:发布、调试和性能测试。

    3 build configurations image

    Enable Testability image

    另一方面,对于单元测试,您希望在调试模式下编译应用程序,因此您可以设置断点来调试失败的测试。

    还请注意,由于您要在方案中添加自定义配置,因此最好将它们共享,以便为您的项目做出贡献的每个人都一样。

    您可以在SwiftGraph project 中看到这一切。更具体地说,这是在 this commit

    中实现的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-13
      相关资源
      最近更新 更多