35

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

4

5 に答える 5

42

リガの優れた答えを使用して、これが私がそれをどのように機能させたかの要約です:

  1. Eclipseで新しいC++プロジェクトを作成しました(実行可能ファイル>空のプロジェクトを選択しました)
  2. googletest 1.5.0をダウンロードし、風袋引きせずに実行しました./scripts/fuse_gtest_files.py . <project-dir>/contrib
  3. contribEclipseに戻り、リリースビルド構成からディレクトリを除外<project-dir>/contribし、インクルードディレクトリに追加しました(奇妙なことに、私は知っています)
  4. srcディレクトリを追加し、という名前のクラスを追加しました( --IFooの内容については以下を参照してください)Foo.hFoo.cpp
  5. Eclipseにディレクトリを追加testし、リリースビルド構成から除外し<project-dir>/contrib、インクルードディレクトリに追加し、新しいソースファイル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で、「ファイル」メニューを開き、 「新規」 > 「 C++プロジェクト」を選択します。
  2. プロジェクトタイプ:実行可能>空のプロジェクト
  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に戻り、プロジェクトエクスプローラーペインでプロジェクトフォルダーを右クリックし、[更新]を選択します。
  10. contribプロジェクトエクスプローラーペインで、フォルダーを右クリックし、 [ビルドから除外... *]を選択し、[**リリース]ボックスのみをオフにして、[ OK ]をクリックします。
  11. contribフォルダを右クリックして、 [プロパティ] > [ C /C++ビルド] > [設定] >[ツール設定]タブ>[ GCCC++コンパイラ] > [ディレクトリ]を選択します。
  12. [追加... ]ボタンをクリックしてから[ワークスペース... ]ボタンをクリックし、[ OK ]を選択<project-name>/contribしてクリックしてディレクトリを追加します
  13. もう一度[ OK]をクリックして、ビルド設定への変更を受け入れます
  14. プロジェクトエクスプローラペインでプロジェクトを右クリックし、[新規] > [フォルダsrc]を選択し、名前として入力して、[ OK ]をクリックします。
  15. srcプロジェクトエクスプローラペインでフォルダを右クリックし、 [新規] > [クラス]を選択して名前を付け、[ OKFoo ]をクリックします( ;の内容については上記を参照してください) 。Foo.hFoo.cpp
  16. プロジェクトエクスプローラペインでプロジェクトを右クリックし、[新規] > [フォルダtest]を選択し、名前として入力して、[ OK ]をクリックします。
  17. 上記の手順に従って、ディレクトリにディレクトリを追加および追加<project-name>/contribします<project-name>/srctest
  18. フォルダを右クリックし、 [新規] > [ソースファイルtest]を選択してフォルダに追加し、同じ手順を繰り返して追加します(内容については上記を参照)。AllTests.cpptestFooTest.cpp
  19. 右クリックして[ビルドから除外...FooTest.cpp ]を選択し、 [すべて選択]ボタンをクリックして、 [ OK ]をクリックします。
  20. プロジェクトエクスプローラーペインでプロジェクトを右クリックし、[プロパティ] > [ C /C++ビルド] > [設定] >[ツール設定]タブ>[ GCCC ++リンカー] >[ライブラリ]を選択し、[追加... ]ボタンをクリックして、 pthread(googletestで必要)と入力します。 [ OK ]をクリックしてライブラリを追加し、もう一度[OK]をクリックして変更を受け入れます
  21. Ctrl -bを押してプロジェクトをビルドします
  22. Ctrl -F11を押してプロジェクトを実行します
  23. 勝利!
于 2011-04-27T06:39:52.890 に答える
30

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

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

Eclipse が既にインストールされていて、Java のみの場合は、次の手順に従って C++ プラグインをダウンロードしてください。

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

ここに画像の説明を入力

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++ サポート

ここに画像の説明を入力

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

ステップ 2 Cygwin をダウンロードする

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

ここに画像の説明を入力

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

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

ここに画像の説明を入力

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

ここに画像の説明を入力

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

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

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

(注: 次のコマンドを使用しますmake-- 使用する GoogleTest の最後のリビジョンmakehttps://github.com/google/googletest/releases/tag/release-1.8.1です。GoogleTest の将来のリビジョンではcmake代わりに使用します。)

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++ プロジェクト] を選択します。以下の値を入力し、[完了] をクリックします。

ここに画像の説明を入力

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

ここに画像の説明を入力

[C/C++ ビルド] で [設定] を選択し、[Cygwin C++ Compiler] の下の [Includes] フォルダーをクリックします。上部のボックスにある [追加] ボタンをクリックし、GoogleTest インクルード フォルダーを参照します。

ここに画像の説明を入力

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

ここに画像の説明を入力

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

ステップ 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++ ユニットを選択し、[新規] ボタンをクリックします。

ここに画像の説明を入力

[C/C++ アプリケーション] の下にこのプロジェクト名が自動的に入力されます。そうでない場合は、[プロジェクトの検索] をクリックしてこのプロジェクトを選択します。次に、C/C++ Testing タブをクリックします。[Tests Runner] ドロップダウンで [Google Tests Runner] を選択し、[Run] をクリックして魔法を確認します。

ここに画像の説明を入力

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

ここに画像の説明を入力

于 2014-04-28T04:29:43.870 に答える
7

これがEclipse 4.3およびCDT 8.2の私のソリューションです。これは上記よりもやや簡単だと感じました。

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

  2. 「YourProject-> Properties-> C/C++ Build-> Settings-> GCC C++ Compiler-> includes-> Include paths」に移動し、gtest に include フォルダーを追加します。

  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 にエラー通知が残る場合があります。その場合は、プロジェクトの再インデックスが役立つ場合があります)

于 2014-02-12T12:36:56.837 に答える
0

私はあなたのソリューションをトレイに入れましたが、うまく動作します。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 を追加しました...そして動作します!

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

于 2015-09-10T09:10:20.273 に答える