我向/src/chrome/test/data/webui/
添加了一个简单的JavaScript测试,并将该文件包含在/src/chrome/chrome_tests.gypi
中。
我是这样构建的:ninja -C out/Debug browser_tests
。这需要一段时间。有没有办法只重建我的测试,而不构建所有其他浏览器测试?
答案 0 :(得分:1)
browser_tests是编译这些测试的唯一可执行目标,因此即使您在单个测试中执行更改,也需要在任何情况下使用它。但您可能希望尝试共享库编译以提高构建速度。在重新编译之前只需要export GYP_DEFINES='component=shared_library'
然后./build/gyp_chromium
。
答案 1 :(得分: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"
,因为这不是绝对路径,所以extension_path_ = base::MakeAbsoluteFilePath(extension_path_);
已test_data_dir_
清除了CR_SOURCE_ROOT=~/chromium/src/ ./out/Debug/browser_tests
。
因此,Chromium尝试从位置“”(空字符串)加载扩展,这显然会失败。
最终,我将原因追溯到{{1}},该{{1}}初始化为UnpackedInstaller::GetAbsolutePath
,而DIR_TEST_DATA
则为derived from DIR_SOURCE_ROOT
,而read from the CR_SOURCE_ROOT
environment variable则为{{3}}。使用以下命令,我的测试再次运行,并且我能够在不重新编译的情况下更新扩展测试。
{{1}}