(Apologies for the last message, I am using an unfamiliar keyboard and accidentally pressed the 'send' keyboard combination.) Hi all, I'm having a bit of a problem trying to figure out how to perform some class init while manually registering my tests. I want to run a set of tests which all share the same class instance (this is a factory class that creates the objects to be tested.) I am creating a number of global class instances and using boost::bind in the constructor to register the tests with Boost.Test. This works fine, except that I need to create the factory class before the tests can be run. In case the factory class fails, I want to use some of the Boost.Test checks in the initialisation function. However when I do this, I get this runtime error: terminate called after throwing an instance of 'std::runtime_error' what(): can't use testing tools before framework is initialized I am assuming this means I need to wait with the construction of my factory class until Boost.Test is ready, but I am unsure how to do this. I am #defining BOOST_TEST_MODULE, and when I try to declare a function called init_unit_test() as suggested in the docs it tells me the function already exists. If I remove the BOOST_TEST_MODULE #define, then it complains that main() is not implemented. I am a bit confused because I do not understand the reason for having init_unit_test() if you cannot implement it. If you choose not to use the Boost auto function then it seems you must implement your own main(), so I would expect your init code would go there, so there is no need for the init_unit_test() function? Is there some other way not mentioned in the docs to manually register tests (which are class member functions) but where the class can call Boost.Test functions in its constructor? Many thanks, Adam.