未捕获引用错误:未定义区域(Jasmine)

未捕获引用错误:未定义区域(Jasmine),jasmine,angular6,karma-jasmine,Jasmine,Angular6,Karma Jasmine,我正在为angular项目执行单元测试,但我遇到了错误 '未捕获引用错误:未定义区域' 在茉莉花和因果报应中。目前我正在使用angular 6 "jasmine-core": "~2.99.1", "jasmine-spec-reporter": "~4.2.1", "karma": "~1.7.1", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "~2.0.0",

我正在为angular项目执行单元测试,但我遇到了错误

'未捕获引用错误:未定义区域'

在茉莉花和因果报应中。目前我正在使用angular 6

"jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~1.7.1",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.0",
    "karma-jasmine": "~1.1.1",
    "karma-jasmine-html-reporter": "^0.2.2",
    "typescript": "2.7.2",
未捕获引用错误:未定义区域 地址:9876/_karma\u webpack//webpack:/node\u modules/zone.js/dist/zone testing.js:85 地址:9876/_karma\u webpack//webpack:/node\u modules/zone.js/dist/zone testing.js:9 反对。(:9876/_karma_webpack./u/webpack:/node_modules/zone.js/dist/zone testing.js:12) 在Object../node_modules/zone.js/dist/zone-testing.js(zone-testing.js:1584) 在网页中需要(:9876/\u karma\u网页/webpack:/webpack/bootstrap:76) at Object../src/test.ts(:9876/_karma\u webpack\u/webpack:/src/test.ts:3) 在网页中需要(:9876/\u karma\u网页/webpack:/webpack/bootstrap:76) 在checkDeferredModules(:9876/_karma_webpack//webpack:/webpack/bootstrap:43) 地址:9876/_karma\u webpack//webpack:/webpack/bootstrap:134 自动引导时:134


请浏览下面的链接,它将对您有所帮助


我在第九章也有同样的问题

我已经为“test.ts”文件添加了一些导入和一个用于窗口的polyfill。下面是完整的文件

// This file is required by karma.conf.js and loads recursively all the .spec and framework files

import 'zone.js/dist/zone';
import 'zone.js/dist/long-stack-trace-zone';
import 'zone.js/dist/proxy';
import 'zone.js/dist/sync-test';
import 'zone.js/dist/jasmine-patch';
import 'zone.js/dist/async-test';
import 'zone.js/dist/fake-async-test';
import 'zone.js/dist/zone-testing';
import { getTestBed } from '@angular/core/testing';
import {
  BrowserDynamicTestingModule,
  platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';

(window as any).global = window;

declare const require: {
  context(path: string, deep?: boolean, filter?: RegExp): {
    keys(): string[];
    <T>(id: string): T;
  };
};

// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
  BrowserDynamicTestingModule,
  platformBrowserDynamicTesting()
);
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);
//karma.conf.js需要此文件,并递归加载所有.spec和framework文件
导入'zone.js/dist/zone';
导入'zone.js/dist/long stack trace zone';
导入'zone.js/dist/proxy';
导入“zone.js/dist/sync测试”;
导入'zone.js/dist/jasmine patch';
导入'zone.js/dist/async test';
导入'zone.js/dist/fake async test';
导入“zone.js/dist/zone testing”;
从“@angular/core/testing”导入{getTestBed};
进口{
浏览器动态测试模块,
平台浏览器动态测试
}来自“@角度/平台浏览器动态/测试”;
(如有窗口)。全局=窗口;
声明常数要求:{
上下文(路径:string,deep?:boolean,filter?:RegExp):{
keys():字符串[];
(id:string):T;
};
};
//首先,初始化角度测试环境。
getTestBed().initTestEnvironment(
浏览器动态测试模块,
平台浏览器动态测试()
);
//然后我们找到所有的测试。
const context=require.context('./',true,/\.spec\.ts$/);
//并加载模块。
context.keys().map(context);

我不知道这是否仍然是一个问题,但是如果一切看起来都很好,但仍然不起作用,请在
karma.conf.js
文件中尝试以下操作:

config.set({…文件:['node\u modules/zone.js/dist/zone.js']})

有关更多信息,请参阅此链接:

你好,谢谢回复。我试过同样的方法,但还是同样的错误。
// This file is required by karma.conf.js and loads recursively all the .spec and framework files

import 'zone.js/dist/zone';
import 'zone.js/dist/long-stack-trace-zone';
import 'zone.js/dist/proxy';
import 'zone.js/dist/sync-test';
import 'zone.js/dist/jasmine-patch';
import 'zone.js/dist/async-test';
import 'zone.js/dist/fake-async-test';
import 'zone.js/dist/zone-testing';
import { getTestBed } from '@angular/core/testing';
import {
  BrowserDynamicTestingModule,
  platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';

(window as any).global = window;

declare const require: {
  context(path: string, deep?: boolean, filter?: RegExp): {
    keys(): string[];
    <T>(id: string): T;
  };
};

// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
  BrowserDynamicTestingModule,
  platformBrowserDynamicTesting()
);
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);