常见问题解答

为什么我的性能测试在基础架构 build 中会运行两次?

对于包含 fuchsia_test_package 和主机端封装容器的性能测试,测试逻辑最终可能会在基础架构 build 中运行两次:一次通过主机端封装容器,一次在没有封装容器的情况下作为仅限 Fuchsia 端的测试。

这种情况是不可取的,因为:1) 会浪费基础架构容量;2) 测试包有时会在异常或缓慢的 build 配置(例如 ASan、覆盖率、QEMU)下运行,而此时测试软件包不稳定或运行时间过长。

(不过,有时这是可取的,例如,当测试软件包默认在“单元测试模式”下运行其测试,即在“性能测试模式”下进行少量测试迭代。)

之所以出现这个问题,是因为向构建器配置的依赖项集添加 fuchsia_test_package 通常会导致构建器将其作为 Fuchsia 端(目标端)测试运行。

如需解决此问题,建议将以下代码添加到 BUILD.gn 文件的 fuchsia_test_package 声明中:

  # Prevent this test from being run as a target-side test, because it
  # is run by a host-side wrapper.
  test_specs = {
    environments = []
  }