【问题标题】:Tests of Bazel: is there any tests for CppCompileAction.java?Bazel 的测试:CppCompileAction.java 是否有任何测试?
【发布时间】:2018-11-22 12:39:25
【问题描述】:

我在工作中学习和使用 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);

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

【问题讨论】:

    标签: unit-testing bazel


    【解决方案1】:

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

    其中一个原因是,如果 java 测试执行 C++ 编译操作,则测试套件将依赖于 C++ 工具。

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

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

    .. 和 Here 是一个 shell 测试示例,它完全测试 C++ 构建, 执行操作。

    希望这会有所帮助!

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 2020-08-10
    • 2016-12-28
    • 1970-01-01
    相关资源
    最近更新 更多