文档菜单
文档首页
/ / /
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
...
)

返回

升级