除了测试代码更加隔离这一事实之外,在Xcode中创建单独的Performance Test scheme
(类似于Unit Test
和UI Test
之类的方案)有什么好处吗?是否值得为单个Xcode项目保留3种测试方案?
我想说的是,即使我在相同的单元测试包(方案)中用self.measure{ }
块编写了所有性能测试用例,一旦项目增长并在Jenkins中进行持续集成,它会有什么不同吗?
实施Performance testing in Xcode
的工业标准是什么?每个人都在同一个单元测试包中进行性能测试吗?为什么为什么不呢?
发布于 2018-11-06 07:02:50
首先,请注意, that 和target不是一回事:
目标指定要生成的产品,并包含从项目或工作区中的一组文件构建产品的说明。
正如您所说的,当涉及到测试时,目标被用来对一组测试进行分组,即所谓的测试包。有了几个测试目标,您就可以轻松地只运行所有测试用例的一个特定子集。因此,在特定的测试目标中分离性能测试特别有用,因为这些测试通常需要更多的时间来运行。因此,能够只运行更快的单元测试是有用的。
方案定义要构建的目标集合,定义构建时使用的配置,以及要执行的测试集合。
(强调是我的)这里是诀窍,对你的问题的答案是:对于性能测试,有一个专门的方案来运行它们是特别重要的,因为这样可以让你用不同的构建配置构建应用程序。您希望这样做,因为您希望在发布模式下编译您的应用程序,所以您的性能测试运行在优化的构建上。在特定的构建配置中内置应用程序的方案
准确地说,对于性能测试,您需要添加一个与发行版类似的新构建配置,但需要启用“启用可测试性”构建标志。这种“启用可测试性”是测试链接到您的应用程序所必需的。因此,在您的项目中,您将有3种构建配置: Release和PerformanceTests。
另一方面,通过单元测试,您希望在调试模式下编译应用程序,因此可以设置断点来调试失败的测试。
还请注意,由于您要在方案中添加自定义配置,所以让它们共享是个好主意,所以每个为您的项目做出贡献的人都有相同的配置。
您可以在SwiftGraph项目中看到所有这些操作。更具体地说,这是在此承诺中实现的。
https://stackoverflow.com/questions/53167318
复制相似问题