从Xcode 3.2.3升级到3.2.4后,单元测试不再起作用。

3
我刚刚将我的XCode更新到3.2.4,结果我的单元测试不再工作。我按照Scott Densmore的说明配置了目标和可执行文件,以便能够调试我的测试。
我已将我的测试目标(LogicTests)的基本SDK更改为iOS4.1,并更新了我的可执行文件(otest)的otest脚本路径。
然而,尽管我的应用在iPhone模拟器中运行,执行单元测试总是崩溃。当我尝试运行测试时,控制台会显示以下内容:
[Session started at 2010-09-15 23:28:37 +0200.]
GNU gdb 6.3.50-20050815 (Apple version gdb-1472) (Wed Jul 21 10:53:12 UTC 2010)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin".tty /dev/ttys014
Loading program into debugger…
Program loaded.
run
[Switching to process 12125]
warning: The target crashed on startup, maybe the shell is crashing.
"Try set start-with-shell 0" to workaround.

The Debugger has exited due to signal 6 (SIGABRT).The Debugger has exited due to signal 6 (SIGABRT).

我希望您能提供任何有关编程方面的帮助!提前感谢您。

祝好, 乔治

1个回答

2

我最近也遇到了同样的问题。发现当我取消勾选DYLD_FORCE_FLAT_NAMESPACE环境变量后,我的测试可以正常运行。这个环境变量似乎会导致一些可怕的问题。如果我有更多的信息,我会在这里发布。


感谢Truelson。在阅读您的帖子之前,我已经按照苹果文档中提出的建议切换回了不可调试的单元测试。经过一些微小的调整(请参见http://gist.github.com/586296),它们又可以正常工作了。不幸的是,我从未提交过可调试版本,因此无法尝试您的修复方法。无论如何,非常感谢您的建议。一旦我切换回可调试测试,我会记得测试它。 - Georg Gruetter
顺便说一下,我发现了 Cedar 并且正在使用它来代替之前所有的 Xcode hackery。请参考 http://pivotallabs.com/users/amilligan/blog/articles/1267-bdd-style-testing-for-iphone-projects 并搜索“cedar bdd”以获取更多详细信息。这是一个很好的框架,可以运行测试可执行文件,我对此感到非常满意。 - DogpatchTech

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接