0

Boost Test を使用して、テスト ランナーを終了せずに単体テストを複数回実行したいと考えています。私がやりたいことを示す擬似コードは次のとおりです。

void main() {
    for(int i = 0; i < 10; ++i) 
    {
            char *arguments[] ={ "MyApplication.exe", 
                                 "--detect_memory_leak=0" };
            boost::unit_test::unit_test_main( &init_function, 2, arguments);
     } 
}

最初unit_test_mainに呼び出されると、すべてのブースト テストが正常に実行されますが、2 回目の繰り返しでは、ブースト テストが例外をスローします。

内部コードを調べたところ、unit_test_main呼び出されるたびにフレームワークが初期化され、フレームワークが既に初期化されている場合、ブースト テストはフレームワークを再度初期化することを好まないことがわかりました。

テストランナーを終了せずにユニットテストを複数回実行する方法があれば教えてください。

4

1 に答える 1

0

ストック unit_test_main を置き換えるには、独自のテスト ランナーを実装する必要があります。ストックバージョンが何をしているかを確認し、そこにループを追加できます。

于 2012-05-24T22:53:28.210 に答える