web-dev-qa-db-ja.com

Eclipseでgoogletestを使用する方法:

Googleテストをダウンロードしましたが、Eclipseのプロジェクトにリンクする方法がわかりません。ソースフォルダーとして追加する必要がありますか? g ++に含まれるライブラリとして含める必要がありますか?そして、どうすればテストを実行できますか?

33
user478310

リガの優れた答え を使用して、ここで私がそれをどのように動かしたかの概要を示します:

  1. Eclipseで新しいC++プロジェクトを作成しました([実行可能]> [空のプロジェクト]を選択しました)
  2. ダウンロード googletest 1.5. 、展開、実行./scripts/Fuse_gtest_files.py . <project-dir>/contrib
  3. Eclipseに戻り、リリースビルド構成からcontribディレクトリを除外し、<project-dir>/contribをインクルードディレクトリに追加しました(奇数、私は知っています)
  4. srcディレクトリを追加し、Fooという名前のクラスを追加しました(Foo.hの内容については以下を参照してください-今のところFoo.cppを空のままにしました)
  5. Eclipseにtestディレクトリを追加し、リリースビルド構成から除外し、<project-dir>/contribをincludeディレクトリに追加し、新しいソースファイルFooTest.cppおよびAllTests.cppを追加しました(以下を参照)コンテンツ用)
  6. プロジェクトを構築して実行しました!

Foo.h:

#ifndef FOO_H_
#define FOO_H_
class Foo {
public:
  virtual ~Foo();
  Foo();
  bool foo(void) { return true; }
};
#endif /* FOO_H_ */

FooTest.cpp:

#include "gtest/gtest.h"
#include "Foo.h"
namespace {
  class FooTest : public ::testing::Test {
  protected:
    Foo foo;
  };
  TEST_F(FooTest, Foo) {
    ASSERT_TRUE(foo.foo());
  }
}

AllTests.cpp:

#include "gtest/gtest.h"
#include "FooTest.cpp"
int main(int argc, char **argv) {
  ::testing::InitGoogleTest(&argc, argv);
  return RUN_ALL_TESTS();
}

詳細な手順は次のとおりです。

  1. Eclipseで、Fileメニューを開き、New>C++プロジェクト
  2. プロジェクトタイプ:Executable>Empty Project
  3. ツールチェーン:Linux GCC
  4. クリック完了
  5. ターミナルを開き、cd /tmp
  6. wget http://googletest.googlecode.com/files/gtest-1.5.0.tar.bz2
  7. cd gtest-1.5.0/
  8. ./scripts/Fuse_gtest_files.py . <project-dir>/contrib
  9. Eclipseに戻り、プロジェクトエクスプローラーペインでプロジェクトフォルダーを右クリックし、Refreshを選択します。
  10. プロジェクトエクスプローラーペインで、contribフォルダーを右クリックし、ビルドから除外... *を選択し、** Releaseボックス、クリック[〜#〜] ok [〜#〜]
  11. contribフォルダーを右クリックして、Properties>C/C++ Build>Settings>Tool Settingstab>GCC C++コンパイラ>ディレクトリ
  12. 追加...ボタンをクリックしてから、ワークスペース...ボタンをクリックし、<project-name>/contribを選択して[〜#〜] ok [〜#〜]をクリックしてディレクトリを追加します
  13. [〜#〜] ok [〜#〜]をクリックして、ビルド設定への変更を受け入れます
  14. プロジェクトエクスプローラーペインでプロジェクトを右クリックし、New>Folder、名前にsrcと入力し、[〜#〜] ok [〜#〜]をクリックします
  15. Project Explorerペインでsrcフォルダーを右クリックし、New>ClassFooと名前を付けてから、[〜#〜] ok [〜#〜]Foo.hの内容については上記を参照してください; Foo.cppはそのままでかまいません)
  16. プロジェクトエクスプローラーペインでプロジェクトを右クリックし、New>Folder、名前にtestと入力し、[〜#〜] ok [〜#〜]をクリックします
  17. 上記の手順に従って、<project-name>/contribおよび<project-name>/srcをインクルードディレクトリとしてtestディレクトリに追加します。
  18. testフォルダーを右クリックして、New>Source FileAllTests.cpptestフォルダーに追加し、同じ手順を繰り返してFooTest.cppを追加します(内容については上記を参照)
  19. FooTest.cppを右クリックして、ビルドから除外...を選択し、すべて選択ボタン、次に[〜#〜] ok [〜#〜]
  20. Project Explorerペインでプロジェクトを右クリックし、Properties>C/C++ Build>Settings>Tool Settingstab>GCC C++ Linker>Librariesをクリックし、追加...ボタン、pthread(googletestで必要)を入力し、[〜#〜] ok [〜#〜]ライブラリを追加してから、[〜#〜] ok [〜#〜] もう一度変更を受け入れる
  21. Ctrl-bを押してプロジェクトをビルドします
  22. Ctrl-F11を押してプロジェクトを実行します
  23. 勝利!
39
Josh Glover

ステップ1 Eclipseをインストールします

Eclipseがマシンにまだインストールされていない場合は、Eclipseの最新のバージョンを入手してくださいIDE C/C++開発者向けのEclipseダウンロードページ( http://www.Eclipse .org/downloads / )。

EclipseがすでにインストールされているがJava専用の場合は、これらの手順に従ってC++プラグインをダウンロードします。

a。 Eclipseを開き、[ヘルプ]-> [新しいソフトウェアのインストール]をクリックします。

enter image description here

b。 Work with:ボックスに、 http://download.Eclipse.org/tools/cdt/releases/kepler と入力します。しばらくすると、[名前]ボックスが表示されます。次のコンポーネントを選択します。

  • CDTの主な機能-> C/C++開発ツール
  • CDTの主な機能-> C/C++開発ツールSDK
  • CDTオプション機能-> C/C++ユニットテストのサポート
  • CDTオプション機能-> C/C++ユニットテストサポートソース
  • CDTオプション機能-> C/C++ Visual C++サポート

enter image description here

c。 [次へ]をクリックし、ステートメントに同意して、[完了]をクリックします。

ステップ2 Cygwinのダウンロード

Cygwinインストールページでsetup-x86_64.exeリンクをクリックしてCygwinをインストールします( http://www.cygwin.com/install.html )。実行後、[パッケージの選択]ウィンドウが表示されるまで、デフォルトで[次へ]をクリックします。

enter image description here

Gccとmakeの2つのパッケージを検索してインストールする必要があります。

最初の検索語はgccです。 gccを検索して、Develフォルダーを開きます。 Word Skipをクリックして、インストールするパッケージをマークします(ビルド番号に変更されます。ビルド番号は、ここに示されているものよりも大きい場合があります):gcc-core、gcc-g ++、およびlibgcc1。

enter image description here

2番目の検索語はmakeです。ここでは、Develパッケージmakeのみが必要です。

enter image description here

これらを選択したら、[次へ]をクリックしてインストールします。

ステップ3 Google Testプロジェクトをダウンロードしてビルドします

https://code.google.com/p/googletest/downloads/list からGoogleTestの最新リリースをダウンロードし、Zipファイルの内容を共通のディレクトリに抽出します。すべてのユーザーがこのディレクトリにアクセスできることが重要です。

Google Testプロジェクトをビルドするには:

  1. Cygwinを開きます(Cygwinのインストールディレクトリを見つけ、Cygwin.batをダブルクリックします)。
  2. 現在の作業ディレクトリを解凍したGoogleTestのmakeディレクトリに変更します:cd c:/<<yourpath>>/gtest-1.7.0/make/
  3. プロジェクトをビルドします:make
  4. Gtest-all.oファイルからアーカイブライブラリを作成します:ar -rv libgtest.a gtest-all.o

ステップ4 Cygwin binディレクトリをコンピューターのPATH変数に追加します

Windowsのバージョンに応じて、このページの指示に従ってください: http://www.Java.com/en/download/help/path.xml 、Cygwins binディレクトリをコンピューターのPATH環境変数に追加します。 (通常、現在の値の末尾に; C:\ cygwin64\binを追加することにより)。

ステップ5 GoogleTestを使用する新しいプロジェクトを作成します

Eclipseを起動し、「ファイル」->「新規」->「C++プロジェクト」を選択します。以下の値を入力して、「終了」をクリックします。

enter image description here

[プロジェクトエクスプローラ]で、プロジェクトの名前を右クリックし、[プロパティ]を選択します。 C/C++ Buildで、BuilderタイプをInternal Builderに変更します。

enter image description here

C/C++ Buildの下で、Settingsを選択し、Cygwin C++ Compilerの下のIncludesフォルダーをクリックします。上部のボックスの[追加]ボタンをクリックし、GoogleTestのincludeフォルダーを参照します。

enter image description here

最後に、Cygwin C++リンカーフォルダーの下で、[その他]を選択し、[その他のオブジェクト]の下の[追加]アイコンをクリックします。手順3で構築したlibgtest.aファイルを見つけます(解凍されたgtestフォルダーのmakeディレクトリーにあるはずです)。

enter image description here

それでおしまい!これで、試してみる準備ができました。

ステップ6 GoogleTestを使用するコードを書く

  • 「ファイル」->「新規」->「ソースフォルダー」をクリックして、ソースフォルダーを追加します。 srcと呼びます。
  • Srcフォルダーを右クリックしてヘッダーファイルを追加し、[新規]-> [ヘッダーファイル]を選択します。このファイルをCounter.hと呼びます。
  • Srcフォルダーを右クリックしてソースファイルを追加し、[新規]-> [ソースファイル]を選択します。このファイルをCounter.cppと呼びます。
  • 別のソースファイルを追加し、Counter_Tests.cppを呼び出します。

以下のコードをコピーして適切なファイルに貼り付けます。

Counter.h

class Counter { 
private: 
      int mCounter;
public:    
      Counter() : mCounter(0) {}  
      int Increment();    
};

Counter.cpp

#include <stdio.h>
#include "Counter.h"

int Counter::Increment() {    
      return mCounter++;
}

Counter_Tests.cpp

#include "gtest/gtest.h"
#include "Counter.h"

TEST(Counter, Increment) {
      Counter c;    
      EXPECT_EQ(0, c.Increment());
      EXPECT_EQ(1, c.Increment());
      EXPECT_EQ(2, c.Increment());
}

int main(int argc, char **argv) {    
      ::testing::InitGoogleTest(&argc, argv);
      return RUN_ALL_TESTS();
}

[プロジェクト]メニューで[すべてビルド]を選択します。ここで、GoogleTest単体テストフレームワークを接続するには、[実行]メニューから[実行構成]を選択します。このダイアログから、「C/C++ Unit」を選択し、「新規」ボタンをクリックします。

enter image description here

[プロジェクトの検索]をクリックしてこのプロジェクトを選択しない場合、C/C++アプリケーションの下にこのプロジェクト名を自動的に入力する必要があります。次に、[C/C++ Testing]タブをクリックします。 [テストランナー]ドロップダウンで、[Googleテストランナー]を選択し、[実行]をクリックして魔法を見てください!

enter image description here

以下は結果のスナップショットです。さらにコード/テストを記述した後、赤で強調表示されたボタンをクリックして、すべてのテストをすばやく再コンパイルおよび再実行できます。

enter image description here

27
rundavidrun

ソースフォルダーに追加するのではなく、別のフォルダーを作成してください。これは、テストプロジェクトから実稼働コードの依存関係を回避するためです。こうやって

../ #your project folder
Makefile
src/
  module1 #some module
  module2 #another module
build #tmp for build
dist #binaries 
contrib/
  gtest
  ...
test/ #your test project folder
  Makefile
  src/
    module1 #correspondent to main project's one
    module2 #correspondent to main project's one
  build
  dist
  ...

私は通常、2つのファイルとしてgoogleテストを使用します。これは非常に便利です。使用する scripts/Fuse_gtest_files.py gtestディストリビューションからそれらを抽出します。ファイルが2つしかない場合、テストプロジェクトのコンパイルにコンパイルを含めることができ、プロジェクトの構造は単純です。

テストプロジェクトで、インクルードディレクトリを指定します../contrib:../src:src。したがって、このようなヘッダーを含めることができます

test/src/module1/class1Test.h:

#include "gtest/gtest.h"
#include "module1/class1.h"

// test class1 here
// ...

test/src/mainTest.cpp:

#include "gtest/gtest.h"
#include "module1/class1Test.h"
#include "module2/class2Test.h"
// include other tests you have
// ...

int main(int argc, char** argv) {
  ::testing::InitGoogleTest(&argc, argv);
  return RUN_ALL_TESTS();
}
10
Riga

ここに、Eclipse 4.3およびCDT 8.2のソリューションを示します。これは、上記の説明よりも簡単だと感じました。

  1. Readme.txtの説明に従ってgtestをダウンロードしてインストールします(Linuxでcmakeとmakeを使用)

  2. 「YourProject->プロパティ-> C/C++ビルド->設定-> GCC C++コンパイラ->インクルード->インクルードパス」に進み、gtestにインクルードフォルダーを追加します。

  3. 「YourProject-> Properties-> C/C++ Build-> Settings-> GCC C++ Linker-> Libraries」に移動し、gtestフォルダーを検索パスとして追加し、ライブラリー「gtest」および「pthread」を追加します。

(4.ソースと同じプロジェクトにテストがある場合、リリースビルドからテストを除外します)

  1. 「実行->実行構成...」に進み、新しいC/C++ユニット実行構成を作成します

  2. メインタブでプロジェクトをプロジェクトに設定し、C/C++アプリケーションをアプリケーションに設定します。 C/C++ TestingタブでTests RunnerをGoogle Test Runnerに設定します。

(7. EclipseのGUIにエラー通知が表示される場合があります。これがプロジェクトのインデックスの再作成に役立つ場合は)

7
BjornArnelid

私はあなたのソリューションをトレイに入れました、それはうまく動きます。コンパイルについては、gtestはREADMEではあまり明確ではありません。 txt。

Cygwinコンソールを使用して、/ makeディレクトリでmakefileを実行しました。私の場合、コンパイラーは、pthreadライブラリーを見つけられないことを勧めています。だから私は行を変更しました

CXXFLAGS += -g -Wall -Wextra -pthread

に変更しました

CXXFLAGS += -g -Wall -Wextra -lpthread

私が得る出力はgtest_main.a。次に、このファイルの名前をlibgtest.aに変更し、C:\cygwin\lib directory

次に、Cygwinを使用するようにEclipseプロジェクトを設定し、あなたが言うようにgtestとpthreadを追加しました...そしてそれは動作します!

それが誰かを助けることを願っています

0
Chemado