【发布时间】:2021-10-20 22:25:31
【问题描述】:
在 Windows 中,我正在尝试在运行 Protractor 测试时为我的 Angular 项目进行代码覆盖。我正在尝试检测我的代码并按照以下步骤操作:
我在 windows 中设置 NODE_OPTIONS 环境变量如下:
- 我创建了一个环境变量
NODE_OPTIONS并将值设置为--max_old_space_size=14336(使用Windows 中的系统环境变量对话框) - 除此之外,在命令提示符下,我运行了以下命令:
set NODE_OPTIONS=--max_old_space_size=14336(我假设使用的内存将是 14GB)
将以下.nycrc文件添加到项目根文件夹:
{
"extends": "@istanbuljs/nyc-config-typescript",
"all": true,
"report-dir": ".cypress-coverage",
"extension": [
".js",
".ts",
".tsx"
],
"exclude": [
"**/*.test.{ts,tsx}"
],
"reporter": [
"json",
"html"
],
"parserPlugins": [
"decorators-legacy",
"decorators",
"typescript"
]
}
然后从项目根文件夹中,我运行了使用 istandul 进行检测的命令:
nyc instrument ./dist ./coverage/instrumented
(请注意:dist 文件夹包含 Angular 项目构建输出(分发版))
命令运行几分钟后,报此错误:
D:\myproj>nyc instrument ./dist ./coverage/instrumented
<--- Last few GCs --->
[11804:0000022A18C7C510] 1864090 ms: Scavenge (reduce) 14315.9 (14349.6) -> 14315.3 (14349.9) MB, 51.1 / 0.0 ms (average mu = 0.346, current mu = 0.310) allocation failure
[11804:0000022A18C7C510] 1864137 ms: Scavenge (reduce) 14316.1 (14346.9) -> 14315.5 (14347.9) MB, 22.1 / 0.0 ms (average mu = 0.346, current mu = 0.310) allocation failure
<--- JS stacktrace --->
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
1: 00007FF75D643E0F napi_wrap+108911
2: 00007FF75D5E7E16 v8::base::CPU::has_sse+61910
3: 00007FF75D5E8D16 node::OnFatalError+294
4: 00007FF75DEC0CEE v8::Isolate::ReportExternalAllocationLimitReached+94
5: 00007FF75DEA5ACD v8::SharedArrayBuffer::Externalize+781
6: 00007FF75DD4F95C v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1516
7: 00007FF75DD5ACEA v8::internal::Heap::ProtectUnprotectedMemoryChunks+1258
8: 00007FF75DD57E99 v8::internal::Heap::PageFlagsAreConsistent+2457
9: 00007FF75DD4CA71 v8::internal::Heap::CollectGarbage+2033
10: 00007FF75DD4AC95 v8::internal::Heap::AllocateExternalBackingStore+1349
11: 00007FF75DD6AFEB v8::internal::Factory::NewFillerObject+203
12: 00007FF75DA99E0F v8::internal::interpreter::JumpTableTargetOffsets::iterator::operator=+1039
13: 00007FF75DF49BAD v8::internal::SetupIsolateDelegate::SetupHeap+465229
14: 000000E91F5021E8
由于某些原因,我无法分享我正在进行的项目。供您参考:
- 所有源文件的总大小:8MB
- 构建输出
dist文件夹中所有 .js 文件的大小:大约100MB
【问题讨论】:
标签: angular protractor code-coverage istanbul