使用Boost.UTF进行Bazel测试
Bazel test with Boost.UTF
出于多种原因,我更喜欢Boost.UTF而不是gtest(或其他替代方案(。我最近决定使用 Bazel 作为我的构建系统,由于我基本上处于教程级别,我在网上寻找一种在 Bazel 中使用 Boost 的方法,但它们似乎都没有处理 Boost.UTF,并且由于这个库不仅仅是标头(就像 https://github.com/nelhage/rules_boost 中处理的那些一样(,我不确定如何继续。
如何将 Boost.UTF 添加到 Bazel,以便将其用于我的测试模块?
欢迎任何提示,谢谢。
附言解决我看到的问题的唯一方法是尝试在我构建的机器上安装 boost,并尝试让 Bazel 使用它。我想无论如何,这就是它处理标准库的方式。
编辑:这是我的单元测试的代码。
测试.cpp
#define BOOST_TEST_MODULE CompactStateTest
#include <boost/test/included/unit_test.hpp>
BOOST_AUTO_TEST_SUITE(Suite1)
BOOST_AUTO_TEST_CASE(Test1)
{
int x(0);
BOOST_CHECK_EQUAL(x, 0);
}
BOOST_AUTO_TEST_SUITE_END()
BUILD(bazel的"Makefile"(
cc_test(
name = "btest",
srcs = ["btest.cpp",],
deps = ["@boost//:test",],
)
从 bazel(和 cc_test
(的角度来看,测试是一个二进制文件,当它失败时返回非零退出代码,可能(不是强制性的(编写一个由测试执行时设置的 env var 指定的 xml 文件XML_OUTPUT_FILE XML 测试结果。
因此,您的目标是编写包含所有deps
集cc_test
规则,以便 bazel 可以编译并运行它。为此,您需要为Boost.UTF添加cc_library
依赖项。这将是具有hdrs
和srcs
(和/或deps
(的标准 bazel cc_library
。
我期待您下一个关于如何依赖本地系统上安装的文件的问题,因为您会发现local_repository(并且它是new_
变体(很有用。
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- 尽管测试成功,CppUnit测试核心仍被丢弃.为什么
- 数据成员SFINAE的C++17测试:gcc vs clang
- 如何使用重载的相等(==)运算符向测试用例添加描述
- 为什么二进制搜索在我的测试中不起作用
- 从父数组测试用例构造二叉树失败
- 试图对缓存进行跨步测试,但程序并没有结束
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- OpenGL在启用深度测试时不会丢弃我的碎片
- 为测试目标创建具有不同源文件夹的文件
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- VC++本机单元测试,找不到调试符号
- 换位表导致测试失败(但在游戏中运行良好)
- 用于交叉编译和CMake的预处理器宏的单元测试
- 谷歌测试中的期望值存储在哪里
- 如何在for循环中包含两个索引值的测试条件
- 在cygwin中测试新的boost安装时出现cpp错误
- Bazel:如何在测试前运行py_binary以生成输入文件
- 使用Boost.UTF进行Bazel测试