D:\dev\electron7\src>ninja -C out/Testing net_unittests
out\Testing\net_unittests.exe --gtest_filter=*HttpContentDispositionTest.Filename*
运行:
out/Debug/net_unittests --gtest_filter=*DiskCacheBackendTest.SparseEvict*
测试源码:

- chromium的C++ unit test是所谓的GTest。
- 然后我们就去http://cs.chromium.org搜这个文件的名字,看看它在哪个gn target,发现这个东西是net_unittest的一部分。也可以查找本地机器上源码,搜索*.gn,找到它的gn target目录。
- 或者可以:获取所有构建目标:
-
gn ls out/Default
-
比如: //chrome/test:unit_tests
-
构建这个目标,去掉//: ninja -C out/Default chrome/test:unit_tests
- 最后运行test unit
- out/Debug/net_unittest --gtest_filter=*DiskCacheBackendTest.SparseEvict*
-
out\Default\unit_tests.exe --gtest_filter="PushClientTest.*"
(std中字符串字面常量,任意字符串都可以作为分割符:std:string s=fffxxxhahaha i'am here. she said:" no!"fffxxx
这里fffxxx是字符串的表示。
)
大概思路就是这样,至于具体能不能跑,可以参考一下chromium的这个文档。
您可以在GitHub页面上找到有关GoogleTest的更多信息。
gn args out\Default
gn gen out\Default --ide=vs2017 --fillter="//base:*;//chrome:*;//components:*;//net:*;//net:*;" --sln=chrome --no-deps
ninja -C out\Default chrome
#单元测试编译
ninja -C out\Default chrome\test:unit_tests
报错:
D:\dev\electron7\src>out\Testing\net_unittests.exe --gtest_filter=*HttpContentDispositionTest.Filename*
ERROR: This build is more than 70 days out of date.
This could indicate a problem with the device's clock, or the build is simply too old.
See crbug.com/666821 for why this is a problem
base::Time::Now() --> 2020-09-21 03:04:09.533 UTC (13245131049533601)
base::GetBuildTime() --> 2020-06-07 05:00:00.000 UTC (13235979600000000)
改了系统时间好了