Googleテストをダウンロードしましたが、Eclipseのプロジェクトにリンクする方法がわかりません。ソースフォルダーとして追加する必要がありますか? g ++に含まれるライブラリとして含める必要がありますか?そして、どうすればテストを実行できますか?
リガの優れた答え を使用して、ここで私がそれをどのように動かしたかの概要を示します:
./scripts/Fuse_gtest_files.py . <project-dir>/contrib
contrib
ディレクトリを除外し、<project-dir>/contrib
をインクルードディレクトリに追加しました(奇数、私は知っています)src
ディレクトリを追加し、Foo
という名前のクラスを追加しました(Foo.h
の内容については以下を参照してください-今のところFoo.cpp
を空のままにしました)test
ディレクトリを追加し、リリースビルド構成から除外し、<project-dir>/contrib
をincludeディレクトリに追加し、新しいソースファイルFooTest.cpp
およびAllTests.cpp
を追加しました(以下を参照)コンテンツ用)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();
}
詳細な手順は次のとおりです。
cd /tmp
wget http://googletest.googlecode.com/files/gtest-1.5.0.tar.bz2
cd gtest-1.5.0/
./scripts/Fuse_gtest_files.py . <project-dir>/contrib
contrib
フォルダーを右クリックし、ビルドから除外... *を選択し、** Releaseボックス、クリック[〜#〜] ok [〜#〜]contrib
フォルダーを右クリックして、Properties>C/C++ Build>Settings>Tool Settingstab>GCC C++コンパイラ>ディレクトリ<project-name>/contrib
を選択して[〜#〜] ok [〜#〜]をクリックしてディレクトリを追加しますsrc
と入力し、[〜#〜] ok [〜#〜]をクリックしますsrc
フォルダーを右クリックし、New>Class、Foo
と名前を付けてから、[〜#〜] ok [〜#〜]( Foo.h
の内容については上記を参照してください; Foo.cpp
はそのままでかまいません)test
と入力し、[〜#〜] ok [〜#〜]をクリックします<project-name>/contrib
および<project-name>/src
をインクルードディレクトリとしてtest
ディレクトリに追加します。test
フォルダーを右クリックして、New>Source FileAllTests.cpp
をtest
フォルダーに追加し、同じ手順を繰り返してFooTest.cpp
を追加します(内容については上記を参照)FooTest.cpp
を右クリックして、ビルドから除外...を選択し、すべて選択ボタン、次に[〜#〜] ok [〜#〜]ステップ1 Eclipseをインストールします
Eclipseがマシンにまだインストールされていない場合は、Eclipseの最新のバージョンを入手してくださいIDE C/C++開発者向けのEclipseダウンロードページ( http://www.Eclipse .org/downloads / )。
EclipseがすでにインストールされているがJava専用の場合は、これらの手順に従ってC++プラグインをダウンロードします。
a。 Eclipseを開き、[ヘルプ]-> [新しいソフトウェアのインストール]をクリックします。
b。 Work with:ボックスに、 http://download.Eclipse.org/tools/cdt/releases/kepler と入力します。しばらくすると、[名前]ボックスが表示されます。次のコンポーネントを選択します。
c。 [次へ]をクリックし、ステートメントに同意して、[完了]をクリックします。
ステップ2 Cygwinのダウンロード
Cygwinインストールページでsetup-x86_64.exeリンクをクリックしてCygwinをインストールします( http://www.cygwin.com/install.html )。実行後、[パッケージの選択]ウィンドウが表示されるまで、デフォルトで[次へ]をクリックします。
Gccとmakeの2つのパッケージを検索してインストールする必要があります。
最初の検索語はgccです。 gccを検索して、Develフォルダーを開きます。 Word Skipをクリックして、インストールするパッケージをマークします(ビルド番号に変更されます。ビルド番号は、ここに示されているものよりも大きい場合があります):gcc-core、gcc-g ++、およびlibgcc1。
2番目の検索語はmakeです。ここでは、Develパッケージmakeのみが必要です。
これらを選択したら、[次へ]をクリックしてインストールします。
ステップ3 Google Testプロジェクトをダウンロードしてビルドします
https://code.google.com/p/googletest/downloads/list からGoogleTestの最新リリースをダウンロードし、Zipファイルの内容を共通のディレクトリに抽出します。すべてのユーザーがこのディレクトリにアクセスできることが重要です。
Google Testプロジェクトをビルドするには:
cd c:/<<yourpath>>/gtest-1.7.0/make/
make
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++ Buildの下で、Settingsを選択し、Cygwin C++ Compilerの下のIncludesフォルダーをクリックします。上部のボックスの[追加]ボタンをクリックし、GoogleTestのincludeフォルダーを参照します。
最後に、Cygwin C++リンカーフォルダーの下で、[その他]を選択し、[その他のオブジェクト]の下の[追加]アイコンをクリックします。手順3で構築したlibgtest.aファイルを見つけます(解凍されたgtestフォルダーのmakeディレクトリーにあるはずです)。
それでおしまい!これで、試してみる準備ができました。
ステップ6 GoogleTestを使用するコードを書く
以下のコードをコピーして適切なファイルに貼り付けます。
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」を選択し、「新規」ボタンをクリックします。
[プロジェクトの検索]をクリックしてこのプロジェクトを選択しない場合、C/C++アプリケーションの下にこのプロジェクト名を自動的に入力する必要があります。次に、[C/C++ Testing]タブをクリックします。 [テストランナー]ドロップダウンで、[Googleテストランナー]を選択し、[実行]をクリックして魔法を見てください!
以下は結果のスナップショットです。さらにコード/テストを記述した後、赤で強調表示されたボタンをクリックして、すべてのテストをすばやく再コンパイルおよび再実行できます。
ソースフォルダーに追加するのではなく、別のフォルダーを作成してください。これは、テストプロジェクトから実稼働コードの依存関係を回避するためです。こうやって
../ #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();
}
ここに、Eclipse 4.3およびCDT 8.2のソリューションを示します。これは、上記の説明よりも簡単だと感じました。
Readme.txtの説明に従ってgtestをダウンロードしてインストールします(Linuxでcmakeとmakeを使用)
「YourProject->プロパティ-> C/C++ビルド->設定-> GCC C++コンパイラ->インクルード->インクルードパス」に進み、gtestにインクルードフォルダーを追加します。
「YourProject-> Properties-> C/C++ Build-> Settings-> GCC C++ Linker-> Libraries」に移動し、gtestフォルダーを検索パスとして追加し、ライブラリー「gtest」および「pthread」を追加します。
(4.ソースと同じプロジェクトにテストがある場合、リリースビルドからテストを除外します)
「実行->実行構成...」に進み、新しいC/C++ユニット実行構成を作成します
メインタブでプロジェクトをプロジェクトに設定し、C/C++アプリケーションをアプリケーションに設定します。 C/C++ TestingタブでTests RunnerをGoogle Test Runnerに設定します。
(7. EclipseのGUIにエラー通知が表示される場合があります。これがプロジェクトのインデックスの再作成に役立つ場合は)
私はあなたのソリューションをトレイに入れました、それはうまく動きます。コンパイルについては、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を追加しました...そしてそれは動作します!
それが誰かを助けることを願っています