【问题标题】:Does bazel support test execution order?bazel 是否支持测试执行顺序?
【发布时间】:2020-12-04 05:35:35
【问题描述】:

我希望在运行其他更深入的端到端测试之前运行一定数量的端到端集成测试。只要我不使用--keep_going 标志,第一次测试失败就应该退出bazel test //... 会话。我希望在更深的测试之前运行更浅的端到端测试,有没有办法从 bazel 管理测试执行顺序?

我想我可以在 shell 中做一些事情,比如将测试标记为manual,然后按照我希望的顺序分段调用相关测试,但如果有一些内置方法可以完成上述操作,那就太好了。

【问题讨论】:

    标签: integration-testing bazel


    【解决方案1】:

    在 Bazel,AFAIK 中没有对此的直接支持。

    您可以设置用户指定的标签,然后使用--test_tag_filter 标志来批量运行测试。 F.e.你可以有shallowdeep标签,然后首先运行带有shallow标签的测试,然后是没有标签的测试,然后是带有deep标签的测试。

    【讨论】:

    • 啊哈,所以我会去bazel test --test_tag_filter="+shallow,-deep" //foo/...; bazel test --test_tag_filter="-shallow,-deep" //foo/...; bazel test --test_tag_filter="-shallow,+deep" //foo/...
    • 没错,这也是我要提议的。请注意,对于最后一次调用,您可以删除测试过滤器:将利用 bazel 缓存,并且通过删除过滤器,您可以保证执行所有测试(例如,具有两个标签的测试)。
    猜你喜欢
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    相关资源
    最近更新 更多