It's perfectly OK, why not? However, there is template test-case in boost
So, something like this can help
typedef boost::mpl::vector<X, Y> XY_types;
BOOST_AUTO_TEST_CASE_TEMPLATE(test_X_or_Y, T, XY_types)
and test will be called twice, first for X and second for Y.