web-dev-qa-db-ja.com

GoogleTestをインストールした後、Visual Studio 2017でGoogleMockを構成するにはどうすればよいですか?

Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dynパッケージをVS2017アプリケーションソリューションにインストールしました。これは、「新しいプロジェクトの追加/その他の言語/ C++ /テスト/ Googleテスト」を使用して新しいGoogleTestプロジェクトをソリューションに追加することで実現しました。

テストはうまく機能しますが、これでgmockを使ってモックを試す準備ができました。そのため、NuGetを介してgooglemock.v140.windesktop.static.rt-dynをインストールしましたが、テストプロジェクトに統合する方法がわかりません。

私のpackages.configは次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="googlemock.v140.windesktop.static.rt-dyn" version="1.7.0.1"  targetFramework="native" />
  <package id="Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn" version="1.8.0" targetFramework="native" />
</packages>

...しかし、私が見る限り、リンクする外部依存関係ヘッダーファイルまたは.libファイルはありません。ここからどこへ行けばいいのかわからない。 :-)

P.S. MicrosoftのC++フォーラムにGoogleTestに関する質問を投稿しましたが、Visual Studio経由でインストールされたとしても、GoogleTestに関するこの種の質問には答えられません。

6
R.Evans

この質問で参照されているものなど、NuGetで利用できるいくつかの悪いGoogle Test/GoogleMockパッケージがあります。必要なものは gmockパッケージ Google Incによって作成されています(この記事の執筆時点ではバージョンv1.8.1)。

このパッケージがインストールされると、プロジェクトのpackages.configは次のようになります:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="gmock" version="1.8.1" targetFramework="native" />
</packages>

そして、追加するだけでGMockの使用を開始できます

#include "gmock\gmock.h"

ドキュメント で述べたように。

7
Myk Willis

TLDR;私にとっての解決策は、GoogleMockパッケージで提供されているincludeフォルダーの名前を変更することでした。

から:

packages\googlemock.v140.windesktop.static.rt-dyn.1.7.0.1\build\native\include\gtest

packages\googlemock.v140.windesktop.static.rt-dyn.1.7.0.1\build\native\include\gmock


私はここでまったく同じ状況(同じパッケージバージョン)を持っていますが、別の方法で解決しました(@ R.Evansのソリューションが機能しなかったため)。

Google Mockパッケージを開くと、gtestではなくgmockというフォルダがあり、この名前はhiding GoogleTestパッケージであることに気付きました。 1つをアンインストールすると、次のことができますseeインクルードパス内のもう1つ。

さらに、すべてのGoogleMockヘッダーはヘッダーのメインパスとしてgmockを使用しているため、gtestというヘッダーフォルダーを使用すると、VisualStudioはGoogleMockソースコードでも大量のエラーを報告します。

1
Kill KRT

私は自分の質問に対する答えに出くわしました。 NuGetを介してgmockをインストールした後、テストプロジェクトの.cppの#include "gtest/gtest.h"のすぐ下に#include "gmock/gmock.h"キーを設定してみました。 。それはうまくいきませんでした。 「ExternalDependencies」フォルダでgmockへの参照を探しましたが、見つかりませんでした。 #include "gmock/gmock.h"#include "gtest/gmock.h"に置き換えるまで困惑しました。その時点でエラーは発生していません。グーグルタイプのモックをやろうとしているようです。

1
R.Evans