Elegant Chaos would like to wish you all a fantastic Christmas.
Unless, of course, you don’t celebrate Christmas, in which case have a fantastic not-Christmas.
Unless of course, you recognise Christmas, but simply don’t celebrate it, because that misses the point, in which case, have an appropriately sober Christmas… look, just have a good few days why don’t you, for some appropriate value of good!
Oh, and we do hope that you have a great New Year and a brilliant 2011.
Unless of course you don’t follow the Julian calendar, in which case…
:)
I’m pleased to announce the release of Neu 1.0.2.
This update contains a number of small changes:
I’ve added a page to the Elegant Chaos website which lists the latest available beta versions of our software.
I’d like to avoid having people accidentally download betas without realising that they are getting untested software, so the main product pages will always link to the latest release version.
Which is why, if you’re the adventurous sort, you may want to keep an eye on the beta versions page.
I have a new version of Neu in testing, with a number of minor tweaks and bug fixes:
It isn’t available via the in-application update mechanism, because I don’t want to dump beta code onto people who’ve paid for the application, but if you’d like to give the beta a spin, you can find it here.
Please let me know if you discover any problems!
This is a bit of a technical one… you have been warned…
I’ve got some internal Objective-C frameworks, and they have some unit tests.
I’ve have targets set up for both SenTestingKit and GHUnit, because I like to have the choice of which one to run (I use SenTestingKit from continuous integration scripts, and GHUnit when I want to run the tests manually).
I recently came across a problem when I wanted to test one of my frameworks which uses another one of my frameworks, using SenTestingKit.
The problem is that SenTestingKit builds your tests into a bundle, then runs another application to load that bundle and execute it. This means that, by default, the application that is running your tests doesn’t know where to find any frameworks that your tests depend on.
There are probably a few ways of solving this, but the one I came up with was this:
First, add a copy files phase to your target, and make it copy any dependent frameworks into Contents/Frameworks/ inside the octest bundle that you’re making.
This gives you a known location containing a copy of any frameworks that you’ll need, but it doesn’t automatically tell the unit test running application to look there.
Second, edit the run script which actually invokes the unit test running app.
By default this script looks like this:
# Run the unit tests in this test bundle.
"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests"
The trick is to add our plugin’s Frameworks folder to the search path for frameworks, before running the tool:
# Add the unit test plugin's Frameworks/ path to the search paths for dynamic libraries
export DYLD_FRAMEWORK_PATH="${CONFIGURATION_BUILD_DIR}/${FULL_PRODUCT_NAME}/Contents/Frameworks:$DYLD_FRAMEWORK_PATH"
# Run the unit tests in this test bundle.
"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests"
Bingo - the unit test app now finds the dependent frameworks and runs the tests ok.