The unary function test case is probably what you want. The only downside is that automatic registration (could be based on some kind of factory function) does not seem to be supported for it.
They also have test case template and that does have automatic registration, so it would be possible to abuse it by defining type for each configuration if there's not too many of them.
Edit: The test case template could be used something like this:
// Parameter is the type of parameter you need. Might be anything from simple int (in
// which case the template parameter may be a value, not reference) to complex object.
// It just has to be possible to create (static) global instances of it.
template <const Parameter ¶m>
struct Fixture {
// do whatever you want, param is normal object reference here
// it's not a member, but you can:
const Parameter &getParameter() { return param; }
}
static Parameter p1(whatever);
static Parameter p2(something_else);
// ...
typedef boost::mpl::list<Fixture<p1>, Fixture<p2> > Fixtures;
BOOST_AUTO_TEST_CASE_TEMPLATE(test, F, Fixtures)
{
F fixture; // Unfortunately you can't make it true fixture, so you have to have instance
// Test what you want
}