Unfortunately, the "ugliness" is a byproduct of the fact that cxxtest generates .cpp files from .hpp files and then expects you to compile and link them. Luckily, this results in a very lightweight and easy-to-use system.
I'm not sure what is happening on your system configuration, but dependencies between projects seem to work okay for me - ie if I edit my real library code and target my test-driver application, C::B knows to compile the library before linking.
What I'd really like to see is a JUnit or NUnit like system with a GUI, but none seems to be available C++ - it's convenient to be able to run a sub-set of all the tests through a GUI when I am concentrating on something specific.
Anyhow, best not to waste too much time thinking about this - as long as the framework does its job, better to just get some framework up, and concentrate on the coding itself...