I do not know if there is a way to do this with CppUnitTestFramework, with which I am unfamiliar, but something you can certainly do in googletest is specify an arbitrary list of classes and have the framework generate (template-wise) the same test(s) for all of them. I think that would fit your bill.
You can download googletest as source here.
The idiom you will want is:
typedef ::testing::Types</* List of types to test */> MyTypes;
...
TYPED_TEST_CASE(FooTest, MyTypes);
...
TYPED_TEST(FooTest, DoesBlah) {
/* Here TypeParam is instantiated for each of the types
in MyTypes. If there are N types you get N tests.
*/
// ...test code
}
TYPED_TEST(FooTest, DoesSomethingElse) {
// ...test code
}
Study the primer and the samples. Then go to the AdvancedGuide for Typed Tests
Also check out More Assertions