问题
So I have some unit tests that pass in Xcode 3.1 / Leopard. These use SenTestingKit in an iPhone app project and are built/run in a separate "Test" target. I just upgraded to Xcode 3.2 on Snow Leopard and the tests seem to run (I get logs in Console.app and see them passing), but Xcode beachballs and must be force quit'd after they are run. Console.app displays the following error from Xcode, which appears even if no test cases are included in the Test target:
Xcode[1734] -[XCBuildLogCommandInvocationSection setTestsPassedString:]:
unrecognized selector sent to instance 0x20104db60
Xcode[1734] -runOperationInBackground raised an exception:
-[XCBuildLogCommandInvocationSection setTestsPassedString:]:
unrecognized selector sent to instance 0x20104db60
I've cleaned and re-built to no avail, and I can't seem to find anything on this topic by searching (although it does seem one person has the same issue).
Update: I have reported this as a bug to Apple with bug #7214051.
回答1:
I have also filed a bug report for this, 7210948. Still no response from Apple which is disheartening.
--
Updated:
A user on the Apple Developer forums posted a workaround -
We have recently discovered the root cause of this problem.
People who are affected can work around it by (I hope you're ready for this)...
...changing the Time Zone on your Build machine away from Central Daylight Time. (In six >weeks you can change it back, and people in Mountain Standard TIme will be affected.)
No, seriously. Give it a try.
Message was edited by : cde at 3:34 PM
回答2:
Sounds like corruption; maybe your Xcode installation is bad or maybe something got hosed when you installed Snow Leopard.
Or maybe your project is hosed somehow.
If you have access to another Snow Leopard machine, give it a test there. If it still crashes, file a bug via http://bugreport.apple.com/
回答3:
Me too experiencing same thing. After i failed to run mu old project(which was developed in leopard and Xcode 3.1) I tried creating a new project in Xcode 3.2 and added a new target for unit testing, added new files and a dummy case, again Xcode hanged.... no other option, i had to force quit it.
回答4:
per this link http://www.artin.org/geekblog/2009/09/xcode-snow-leopard-logical-unit-tests-hanging/
changing your Timezone to PST resolves this.
Interestingly, I have this problem on my macbook pro, but not on my mac pro.
回答5:
One other issue to watch out for (although arguably not the issue of OP) is if your unit test bundle is hosted in a test rig (your app) and their is an issue with application initialization, your tests will hang.
There's a rdar for this: rdar://7333645 which suggests not init'ing NSApplicationMain
Diagnosis for this is to do a build. If it hangs, stop the build.
Manually attempt to execute the app (Cmd-Option-R or Cmd-Option-Y) - if you're app doesn't come up, check the console.
回答6:
Apple posted a work-around file and a demo test project here: https://developer.apple.com/library/ios/#samplecode/iPhoneUnitTests/Introduction/Intro.html
Just add: Xcode324iOS41TestSuiteWorkaround.m to your test target and everything will magically work :)
来源:https://stackoverflow.com/questions/1364456/xcode-3-2-in-snow-leopard-hangs-running-unit-tests