【问题标题】:How to use cmake to get rapidcheck (property based testing) working in C++?如何使用 cmake 在 C++ 中进行快速检查(基于属性的测试)?
【发布时间】:2019-11-02 06:30:57
【问题描述】:

我想在我正在开发的 C++ 库中进行一些基于属性的测试,并且正在考虑使用 RapidCheck,除非有人有更好的主意。 (例如,我需要生成任意的std::set<int>,如果我可以在集合中的int 的范围和集合的大小上设置界限,那就更好了。)

说了这么多,我还是个 cmake 新手。 RapidCheck 中似乎没有说明,只是将其作为源代码的一部分包含在内(尽管下载它会更好)。我已经到了可以在我的代码中包含 RapidCheck 标头的地步,但是当我尝试使用 RapidCheck 构建任何应用程序时,我被告知缺少 RapidCheck 的符号或 rapidcheck 库丢失。

我假设我必须将 RapidCheck 本身构建为项目的一部分以生成库,但我不完全确定如何执行此操作,而且似乎很难找到任何执行此操作的示例。

是否有人对完成此类操作的示例有任何建议,以便我可以看到构建第 3 方 API 所需的命令字符串,并在构建可执行文件时包含库,或者 - 甚至更好 - 项目示例使用 RapidCheck 就可以做到这一点?缺乏有关如何设置的文档令人沮丧。

我希望这不是过于模糊。总而言之,我想从 cmake 做些什么:

  1. 最好下载 RapidTest(尽管直接从 RapidTest 项目中包含文件也可以)。
  2. 运行所需的命令并设置必要的变量以使我的测试代码(${PROJECT_SOURCE_DIR}/test)能够访问 RapidTest 标头。
  3. 生成(如有必要)RapidTest 库并制作它,以便我可以将其链接到我正在运行的测试。

提前感谢您提供的任何帮助!

【问题讨论】:

    标签: c++ cmake c++17 property-based-testing


    【解决方案1】:

    这可能不是正确的方法,但也许会有所帮助:

    我能够通过执行以下操作来完成这项工作:

    # from within the root of the rapidcheck repo:
    $ cmake -DBUILD_SHARED_LIBS=true -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug .
    # Leave off the BUILD_SHARED_LIBS flag if you don't need an SO.
    $ make
    

    构建:librapidcheck.solibrapidcheck.a,然后您可以根据需要复制/安装。

    您还需要带有标题的 include 目录进行快速检查,但这只是在源代码树中。

    使用您想要的任何构建工具将包含路径添加到您的编译命令中,并链接到已编译的库(.so.a

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-22
      • 2014-09-13
      • 1970-01-01
      • 2019-07-15
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 2010-11-02
      相关资源
      最近更新 更多