I have some concerns related to the fact of testing some functions containing the assert macro from assert.h.
If the assert fails the test fails also. This leaves me with some test cases that will never work.
For example a function instead of indicating failure (return false or something similar) asserts.
Is there a solution for this (unit-testing functions containing assert)?
No, unit testing is what you do during development. Asserts are a run-time construct.
In my experience, most of the time asserts are turned off in production. But you should always be testing.
CppUnit is a fine test framework. It's part of the nUnit family for C++.