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に関するこの種の質問には答えられません。
この質問で参照されているものなど、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"
ドキュメント で述べたように。
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ソースコードでも大量のエラーを報告します。
私は自分の質問に対する答えに出くわしました。 NuGetを介してgmockをインストールした後、テストプロジェクトの.cppの#include "gtest/gtest.h"のすぐ下に#include "gmock/gmock.h"キーを設定してみました。 。それはうまくいきませんでした。 「ExternalDependencies」フォルダでgmockへの参照を探しましたが、見つかりませんでした。 #include "gmock/gmock.h"を#include "gtest/gmock.h"に置き換えるまで困惑しました。その時点でエラーは発生していません。グーグルタイプのモックをやろうとしているようです。