Docs Menu
Docs Home
/ / /
C++ ドライバー

テスト

項目一覧

  • 既存のテストの実行
  • 統合テストの実行
  • 新しいテストの作成

C++11 ドライバーのテストでは、C++ のテストフレームワークである Catch が使用されC++。

ドライバー内の各クラスには、 src/mongocxx/testに対応するファイルがあります。 新しいドライバーは libmongoc を ラップするため 、実行中の mongod に対する操作の最初の動作をテストするのではなく、個々のクラスの動作をモックしてテストすることをおすすめします。言い換えれば、統合テストではなく、ユニットテストです。

test/collection.cppにもこのドライバーの統合テストがあります。

以下を使用してテストをビルドします。

make

これにより、テスト バイナリが生成されます。 次の方法ですべてのテストを実行することもできます。

make test

または、Catch を使用したより詳細な出力については、生成されたバイナリを実行します。

./build/src/mongocxx/test/test_driver

または、ctest コマンドを実行し、crest のさまざまなフラグを使用できます。 例:

ctest -V

は冗長な出力でテストを実行するために使用できます。または

ctest -R bson

は、 BSONテストのみを実行するために使用できます。

一部のテストでは実行中の mongod インスタンスが必要です。 このためには、まずMongoDB サーバーをダウンロードします。

次に、 コマンドを使用してデフォルト ポートに mongod を配置します。

mongod --setParameter enableTestCommands=1

インストールされている場合は、 mongod 実行可能ファイルを保持するディレクトリに移動し、次を実行します。

./mongod --setParameter enableTestCommands=1

使用するフラグを任意の コマンドに指定します。ただし、 --portは対象外です。 mongod が実行されている間に、通常通りテストを実行します。

ドライバーに機能を追加する場合は、その機能のテストも記述してください。 既存のクラスに追加するには、既存のテスト ケースに新しいセクションが追加される必要があります。

TEST_CASE("existing_class", "[existing_class]") {
SECTION("Can do some new thing") {
...
REQUIRE(new_thing_works);
}
}

新しいクラスを追加する場合は、そのクラスの新しいテストファイルをtestディレクトリに追加してください。 テスト ファイルの名前は、新しいクラスのファイル名と一致する必要があります。 src/mongocxx/test/CMakeLists.txtにファイルをドライバーのテスト ターゲットのソースとして追加する必要があります。

set(mongocxx_test_sources
...
some_new_class.cpp
...
)

戻る

アップグレード