Bazel的测试:是否有针对CppCompileAction.java的测试?

时间:2018-06-13 03:19:06

标签: unit-testing bazel

在我的工作中,我一直在学习和使用Bazel一段时间。出于某种原因,我在src / main / java / com / google / devtools / build / lib / rules / cpp / CppCompileAction.java上做了一些开发。之后,我计划为新的更改添加几个测试。那时我意识到,在相应的包(src / test / java / com / google / devtools / build / lib / rules / cpp /)中,没有执行任何操作。我期待类似下面的内容

CppCompileAction action = ... CppCompileActionBuilder.build(...);
ActionResult result = action.execute(someActionExecutionContext);

有什么理由吗?如果我想创建这样的测试,有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:0)

Bazel的java测试实际上并未执行操作 - 他们模拟构建并验证已注册操作的内容,但实际上并未执行这些操作。

这样做的一个原因是,如果java测试执行C ++编译动作,测试套件将依赖于C ++工具。

作为替代方案,我们有各种shell(.sh)测试套件,可以端到端地测试Bazel,包括操作执行。

Here是验证编译操作的java测试套件的示例。

..和Here是一个shell测试的例子,它完全测试了C ++构建,带有执行动作。

希望这有帮助!