在iPhone上进行ocunit测试

时间:2010-06-08 19:16:41

标签: iphone testing ocunit

我正试图让我的项目中的ocunit从XCode开始工作。由于我还需要在单元测试中进行调试,因此我使用的脚本可以自动完成设置(见下文)。我只是将它包含在资源下的项目中,并将名称更改为我希望它运行的.ocunit文件。

我得到的问题是它无法找到捆绑文件,因此存在错误。 任何对XCode和objective-c有所了解的人都可以看看它并告诉我出了什么问题。另外我应该如何生成我需要运行的.ocunit文件。通过为iPhone设置新的单元测试目标并为其添加测试或?

希望有人有一个线索,因为我刚刚启动了iPhone开发并需要快速启动并快速运行

Apple脚本

-- The only customized value we need is the name of the test bundle
tell me to activate
tell application "Xcode"
 activate

 set thisProject to project of active project document
 tell thisProject
  set testBundleName to name of active target
  set unitTestExecutable to make new executable at end of executables
  set name of unitTestExecutable to testBundleName
  set path of unitTestExecutable to "/Applications/TextEdit.app"

  tell unitTestExecutable

   -- Add a "-SenTest All" argument
   make new launch argument with properties {active:true, name:"-SenTest All"}

   -- Add the magic 
   set injectValue to "$(BUILT_PRODUCTS_DIR)/" & testBundleName & ".octest"


   make new environment variable with properties {active:true, name:"XCInjectBundle", value:injectValue}
   make new environment variable with properties {active:true, name:"XCInjectBundleInto", value:"/Applications/TextEdit.app/Contents/MacOS/TextEdit"}
   make new environment variable with properties {active:true, name:"DYLD_INSERT_LIBRARIES", value:"$(DEVELOPER_LIBRARY_DIR)/PrivateFrameworks/DevToolsBundleInjection.framework/DevToolsBundleInjection"}
   make new environment variable with properties {active:true, name:"DYLD_FALLBACK_FRAMEWORK_PATH", value:"$(DEVELOPER_LIBRARY_DIR)/Frameworks"}
  end tell
 end tell
end tell

2 个答案:

答案 0 :(得分:2)

看起来该脚本的作用是编辑xcode以将OCUnits测试注入调试器。实际上并不是用OCUnit构建的。

您需要创建一个OCUnit目标,然后创建指向该目标的OCUnit测试用例类。

在此处查看教程,了解如何将OCUnit与XCode结合使用。

http://www.mobileorchard.com/ocunit-integrated-unit-testing-in-xcode/

答案 1 :(得分:2)

我自己经历过类似的麻烦,我总结了我为执行单元测试调试所采取的步骤。链接在这里: How to run and debug unit tests for an iphone application