2017-08-12 23 views
2

Googleチームには、非常に成熟したGoogle Test(GTest)テストケースがあります。テストケースは、カスタムテスト環境を介して、GTestが独自に生成する標準のJUnit XML出力に加えて、テストレポートを作成します。Googleテストケースを強制的に実行する方法

私は、スイート内の他のすべてのテストが実行された後にGoogleテストスイートがテストレポートを作成することを保証する最終テストを1つ追加したいと思います。言い換えれば、どのテストが最後に実行されるかを強制したいので、カスタム出力を書き込んだ後、適切に書き込まれているかどうかを確認し、そうでない場合は失敗するようにします。

Googleテストがランダムな順序でテストを実行している場合でも、ソリューションは機能するはずです。最後に1回のテストを強制的に実行できますか? GTestが自動的に発見しないテストを書くことはできますか?自分の「メイン」から自分自身を呼び出すことができますか?

現在のGTest APIでこれを行う方法はありませんが、質問する価値があると思いました。

+0

外部テストプロセスからGoogleテストを起動し、そのPIDを待ってから出力を読み込みますか? –

+0

確かにハックオプションがありますが、テストアーキテクチャにうまく収まるものが本当に好きです。 – DiB

答えて

0

これはおそらくあなたが探しているものに最も近いでしょう。

https://github.com/google/googletest/blob/master/googletest/docs/AdvancedGuide.md#sharing-resources-between-tests-in-the-same-test-case

おそらく、あなたが走ったすべてのテストに関する情報を収集するために、静的オブジェクトの破壊を使用することができます。

ただし、フォークには注意してください。

私は実際にあなた自身のmain()を書き、テストプロセスをフォークし、子プロセスが完了するのを待って、そこからデータを収集することができます。

関連する問題