0

我添加了一个简单的 JavaScript 测试/src/chrome/test/data/webui/并将文件包含在/src/chrome/chrome_tests.gypi.

我是这样建造的:ninja -C out/Debug browser_tests. 不过这需要一段时间。有没有办法只重建我的测试,而不构建所有其他浏览器测试?

4

2 回答 2

1

browser_tests 是编译这些测试的唯一可执行目标,因此即使您在单个测试中执行更改,您也需要在任何情况下使用它。但是您可能想尝试共享库编译来提高构建速度。为此,在export GYP_DEFINES='component=shared_library'重新./build/gyp_chromium编译之前。

于 2013-12-13T19:11:30.190 回答
0

注意:此答案不适用于 webui 测试(它们不依赖于test_data_dir_. 此外,它仅与 Linux 相关。

一些测试文件没有编译成browser_tests. 对于这些情况,只需将CR_SOURCE_ROOT环境变量设置为 Chromium 源目录,例如(如果您的 Chromium 源文件位于~/chromium/src

CR_SOURCE_ROOT=~/chromium/src/ ./out/Debug/browser_tests

当我试图弄清楚为什么扩展测试没有运行时,我发现了这一点。我首先在源代码中查找错误消息:

扩展错误:无法从“”加载扩展。清单文件丢失或无法读取。

使用gdb调试后,我发现应该加载的测试扩展ExtensionBrowserTest::LoadExtensionWithFlags没有加载,因为路径无效。path以某种方式设置为"extensions/api_test/webrequest",并且由于这不是绝对路径,因此被UnpackedInstaller::GetAbsolutePath清除extension_path_ = base::MakeAbsoluteFilePath(extension_path_);
因此,Chromium 尝试从位置“”(空字符串)加载扩展,这显然失败了。

最终,我找到了 的原因test_data_dir_,它在 初始化DIR_TEST_DATA,而它又是从 导出的DIR_SOURCE_ROOT,而它又是CR_SOURCE_ROOT环境变量中读取的。使用以下命令,我的测试再次运行,并且无需重新编译即可更新扩展测试。

CR_SOURCE_ROOT=~/chromium/src/ ./out/Debug/browser_tests
于 2014-02-03T22:39:43.587 回答