代码之家  ›  专栏  ›  技术社区  ›  Andrew Johnson

iPhone单元测试链接问题,找不到开发人员ToolsBundleInjection.framework工具

  •  1
  • Andrew Johnson  · 技术社区  · 15 年前

    documentation .

    Unable to read symbols for "/Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.1 (7C144)/Symbols/Developer/Library/PrivateFrameworks/DevToolsBundleInjection.framework/DevToolsBundleInjection" (file not found).
    

    /Xcode3.1.4/Library/privateframes私有框架

    做了一个象征性的联系。然后运行应用程序时说它无法链接应用程序的文件:

    010-01-25 20:19:22.330 SmokeyTheBear[5808:207] Error loading /private/var/mobile/Applications/26E1F8F4-6444-415B-84CB-BB161DBA29E9/SmokeyTheBear.app/LogicTests.octest/LogicTests:  dlopen(/private/var/mobile/Applications/26E1F8F4-6444-415B-84CB-BB161DBA29E9/SmokeyTheBear.app/LogicTests.octest/LogicTests, 262): Symbol not found: _OBJC_CLASS_$_AppDelegate
      Referenced from: /private/var/mobile/Applications/26E1F8F4-6444-415B-84CB-BB161DBA29E9/SmokeyTheBear.app/LogicTests.octest/LogicTests
      Expected in: /var/mobile/Applications/26E1F8F4-6444-415B-84CB-BB161DBA29E9/SmokeyTheBear.app/UDorse
     in /private/var/mobile/Applications/26E1F8F4-6444-415B-84CB-BB161DBA29E9/SmokeyTheBear.app/LogicTests.octest/LogicTests
    DevToolsBundleInjection: Error loading bundle '/private/var/mobile/Applications/26E1F8F4-6444-415B-84CB-BB161DBA29E9/SmokeyTheBear.app/LogicTests.octest'
    

    然后,我切换回运行应用程序的正常目标,它运行了我所有的单元测试并退出!我又打扫了又造了一个,然后正常的目标就正常运行了。单元测试目标仍然不起作用。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Johannes Rudolph    15 年前

    根据给出的日志消息,我假设您正在尝试设置“逻辑测试” manual (我的)。

    让测试用例访问主题 添加 到 将相应的头文件放入 单元测试类。例如 使用单元测试的项目,请参见 iPhoneUnitTests 示例代码项目。

    我发现使用OCUnit的单元测试设置也是次优的体验。单元测试并不是Obj-C领域的一流实践,至少从苹果公司提供的情况来看是这样。OCTest是SenTestingKit的定制版本。基本上,它创建了一个库,扩展名是octestrunner(otest)执行的.octest。在iPhone上不支持动态链接(更好的措辞是:允许),所以你只能在mac上运行测试。

    这就是为什么我和其他许多人选择退出八进制,选择GTM或GHUnit。它们通过静态链接工作,并将测试运行程序包含在测试目标本身中。(有点类似于“应用程序测试”。)

        2
  •  0
  •   Goles    15 年前

    Google's Toolbox iPhoneUnitTesting Kit

    UISpec for GUI unit testing

    Tutorial

    我认为苹果提供的选项只能在模拟器模式下运行,还有很多其他的缺点。。。很抱歉没有直接回答你的问题,但也许你可以用不同的观点来解决这个问题(就像我在这里给你贴的那些观点)。