1

googletest で Visual Studio 2010 C++ を使用します。単体テストは初めてで、それを試すためのテスト ソリューションを作成しました。ソリューションには 3 つのプロジェクトがあります。

HelloService (static lib)
HelloService.Tests (exe, a console app I think, linked with gmock_main.lib)
HelloApp (MFC exe, my main app)

私は googletest (および googlemock) をコンパイルしてリンクし、正常に動作しています。私の質問は、コード テスト開発サイクルに関するものです。テストで適切なワークフローを理解しようとしています。現在、HelloService.Tests を「スタートアップ プロジェクト」として設定すると、F5 キーを押すとテストが実行されますが、HelloApp は実行されません。HelloApp をスタートアップ プロジェクトとして設定すると、F5 キーを押すとアプリは実行されますが、テストは実行されません。

「HelloApp」をスタートアッププロジェクトとして使用したいと思いますが、ビルド時と実行前にテストを実行します。そうですか?そのためにはどのように設定すればよいですか?

4

2 に答える 2

0

テスト プロジェクトでビルド後のイベントを設定して、テスト実行可能ファイルを実行できます。次に、テスト プロジェクトをメイン アプリの依存関係として追加すると、ビルドごとにテストが自動的に実行されます。これは、テストが失敗するとビルドが失敗することを意味します。アプリを引き続き実行するか、失敗したテストを最初に修正するかは、ユーザー次第です。

于 2011-06-29T18:11:52.417 に答える
0

私にとっての解決策は、HelloApp を StartUp プロジェクトとして設定し、HelloApp プロジェクトを右クリックして [Project Dependencies...] を選択し、HelloService.Tests プロジェクトをチェックすることでした (HelloService プロジェクトは既にチェックされています)。F5 キーを押すと、テスト プロジェクトが実行されます (HelloService.Tests には、それ自体を実行するためのビルド後のイベントが既にあるため)。

私の唯一の懸念は、プロジェクトの依存関係を作成すると、何らかのコードの依存関係が作成されるかどうかです。私の推測ではそうではありませんが、確かに知りたいです。

于 2011-06-29T17:41:44.927 に答える