2 に答える
プログラムで推奨される方法を使用して Google テストを呼び出す場合、デフォルトで --gtest_ コマンド ライン オプションを Google テスト フレームワークに転送できるはずです。
これは、単に呼び出すことによって行われます
::testing::InitGoogleTest(&argc, argv);
exe を破棄したい場合は、コンパイル済みのテストを、テストを実行する標準のメイン プログラムを提供する gtest_main ライブラリにリンクするだけです。
私があなたの質問を正しく理解していれば、あなたのプログラムは Google テスト コードを実行しますが、Google テスト フレームワークに関連するコマンド ライン オプションを、Google テスト フレームワークを呼び出すコードに中継するメカニズムが (まだ) ありません。
それが正しければ、テスト用のコマンド ライン オプションをプログラムに中継するコードを追加する必要があります。--google-test="..."
引数値を Google テスト インフラストラクチャに渡すオプションを追加できます。1 つのオプションから複数のオプションを解析することなどについて心配する必要があります。
その後、次を呼び出すことができます。
your_program --google-test="-gtest_output=xml:report.xml" ...
そしてあなたのコードはそれを管理します。それを処理する標準的な方法はありそうにありません。コマンドライン引数を Google テスト フレームワークに自動的に伝達するものは何もありません。(プログラムは引用符を認識しないことに注意してください。引用符はシェルによって削除されます。)
コマンド ライン引数の代わりに環境変数を使用することもできますが、アプローチとしてはあまり望ましくありません。