注: 長いです。 スクリプト言語でのxUnit実装を使ったことがある方なら、テストを定義するだけでテストが実行されることが当たり前ではないでしょうか。c2.comのWikiによると、これはTest Collectorというそうです。定義したテストを自動的に集めてくる機能のことです。 一般的にTest Collectorの機能は言語が提供するリフレクション機能やメタプログラミング機能を使って実現されます。 例えば、Rubyのtest-unit 2.xでは、リフレクションを使う方法とメタプログラミングを使う方法の両方をサポートしています。リフレクションを使う方法ではObjectSpace.each_object(Class)ですべてのクラスを取得し、その中のTest::Unit::TestCaseのサブクラスを集めます。メタプログラミングを使う方法ではTest::Unit::TestCase.
![C++用xUnitでのテストの書き方 - 2009-11-07 - ククログ](https://cdn-ak-scissors.b.st-hatena.com/image/square/06bdd2cfba37af959427276749418d8c86b5e4b3/height=288;version=1;width=512/https%3A%2F%2Fwww.clear-code.com%2Fimages%2Ficon.png)