Docs 菜单
Docs 主页
/ / /
C++ 驱动程序

测试

在此页面上

  • 运行现有测试
  • 运行集成测试
  • 编写新测试

C++11 驾驶员的测试使用 Catch ( C++测试框架)。

驾驶员中的每个类在 src/mongocxx/test中都有相应的文件。 因为新的驾驶员封装 了 libmongoc ,我们更喜欢模拟和测试单个类的行为,而不是针对运行的mongod测试操作的端到端行为。换句话说,这些是单元测试而不是集成测试。

我们还在test/collection.cpp中对此驱动程序进行了集成测试。

使用以下内容构建测试:

make

这将生成测试二进制文件。 您可以使用以下命令运行所有测试:

make test

或者,要使用 Catch 获得更详细的输出,请运行生成的二进制文件:

./build/src/mongocxx/test/test_driver

或者,您可以运行 ctest 命令并使用 ctest 的各种标志。 例如:

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
...
)

后退

升级