gpt4 book ai didi

xcode - 在Instruments中运行SenTestingKit单元测试

转载 作者:行者123 更新时间:2023-12-04 03:22:35 24 4
gpt4 key购买 nike

我正在开发数据库访问库,并尝试使用已编写的单元测试检查内存泄漏。

这些是基于SenTestingKit的逻辑测试,是在Xcode 4.2中设置的常规方法。我可以使用Cmd-U正常运行它们,但是看不到从Instruments启动它们或调用Instruments检查它们的方法。

我该如何进行这项工作?我需要编写新案例并将其构建到应用程序中吗?

(This question是关于泄漏检查单元测试的,但我认为它是在SenTestingKit之前的。)

最佳答案

该答案从适用于OS X的SenTest开始。如果您担心要在乐器下使用适用于iOS的SenTest,请跳至下一部分。

仪器中的OS X单元测试

我意识到这有点晚了,但是我今天需要在逻辑测试中运行仪器,并使它在我的环境中正常工作,所以我要做的是:

  • 运行Instruments时,创建一个新文档。
  • 从文档
  • 的“目标”下拉菜单中选择“目标”
  • 选中右下角的“遍历包”选项,以允许您深入了解Xcode包
  • 导航到/Applications/Xcode,然后在/Applications/Xcode.app/Contents/Developer/Tools/中找到otest二进制文件,然后选择它
  • 将值OBCJ_DISABLE_GCYES添加为环境变量(如果正在运行GC,则不要这样做)
  • 添加DYLD_FRAMEWORK_PATH并指向包含.octest包
  • 的目录
  • 添加与DYLD_FRAMEWORK_PATH
  • 具有相同值的 DYLD_LIBRARY_PATH
  • 将您的工作目录设置为.xcodeproj所在的目录
  • 对于参数,请使用-SenTest Self和.octest软件包
  • 的完整路径

    根据是否需要加载其他框架以及代码目录中是否有需要读取的测试文件,某些环境变量和您的工作目录可能不是必需的。因此,如果这些步骤不适用于您,则可以忽略这些步骤。

    完成后,您将能够保存文档并将其用于运行测试。

    仪器中的iOS单元测试

    在OP明确了要求之后,我开始使用一个基于iOS模拟器的项目来验证基本说明。

    对于iOS,由于您正在调试其他可执行文件,因此需要不同的配置,并且将需要不同的库。因此,DYLD_FRAMEWORK_PATH将同时包含.octest软件包目录的路径和Simulator框架的路径。后者将是这样的: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk/Developer/Library/Frameworks取决于您使用的是哪个版本的模拟器,我们在下面将其称为SDKPATH
  • 运行Instruments时,创建一个新文档。
  • 从文档
  • 的“目标”下拉菜单中选择“目标”
  • 选中右下角的“遍历包”选项,以允许您深入了解Xcode包
  • 导航到/Applications/Xcode并在/Applications/Xcode/Developer/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk/Developer/usr/bin/中找到otest二进制文件,然后选择它
  • 添加DYLD_LIBRARY_PATH并指向包含.octest包
  • 的目录
  • 添加仅指向SDKPATH的DYLD_ROOT_PATH(上方)
  • 使用SDKPATH添加IPHONE_SIMULATOR_ROOT(上方)
  • 添加DYLD_FRAMEWORK_PATH并指向包含.octest软件包和SDKPATH的目录(上述),并在路径列表
  • 中用冒号( :)分隔它们
  • 在您的iPhone模拟器家中添加CFFIXED_USER_HOME(~/Library/Application Support/iPhone Simulator,尽管我在将其放到此处之前对其进行了扩展,因为我不确定〜会被解释)
  • 将您的工作目录设置为.xcodeproj所在的目录
  • 对于参数,请使用-SenTest Self和.octest软件包
  • 的完整路径

    关于xcode - 在Instruments中运行SenTestingKit单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10962388/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com