angular – 如何在运行ng测试时解决test.ts?
发布时间:2020-12-17 17:36:36 所属栏目:安全 来源:网络整理
导读:我正在使用Angular CLI,当我运行测试时,它开始启动浏览器,然后我突然收到一个错误: userName@UserName:~/devApp/profiles$ng test10% building modules 1/1 modules 0 active18 09 2017 16:16:51.891:WARN [karma]: No captured browser,open http://localh
我正在使用Angular CLI,当我运行测试时,它开始启动浏览器,然后我突然收到一个错误:
userName@UserName:~/devApp/profiles$ng test 10% building modules 1/1 modules 0 active18 09 2017 16:16:51.891:WARN [karma]: No captured browser,open http://localhost:9876/ 18 09 2017 16:16:51.903:INFO [karma]: Karma v1.7.0 server started at http://0.0.0.0:9876/ 18 09 2017 16:16:51.903:INFO [launcher]: Launching browser Chrome with unlimited concurrency 18 09 2017 16:16:51.915:INFO [launcher]: Starting browser Chrome ERROR in Entry module not found: Error: Can't resolve '/Users/xxx/devApp/profiles/src/test.ts' in '/Users/xxx/devApp/profiles/node_modules/@angular/cli/models/webpack-configs' 以下是我在设置项目时通过Angular CLI生成的文件:test.ts: // This file is required by karma.conf.js and loads recursively all the .spec and framework files import 'zone.js/dist/long-stack-trace-zone'; import 'zone.js/dist/proxy.js'; 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 { getTestBed } from '@angular/core/testing'; import { BrowserDynamicTestingModule,platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing'; // Unfortunately there's no typing for the `__karma__` variable. Just declare it as any. declare var __karma__: any; declare var require: any; // Prevent Karma from running prematurely. __karma__.loaded = function () {}; // 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); // Finally,start Karma to run the tests. __karma__.start(); 角cli.json: { "project": { "name": "profiles" },"apps": [ { "root": "src","outDir": "dist","assets": [ "assets" ],"index": "index.html","main": "main.ts","polyfills": "polyfills.ts","test": "test.ts","tsconfig": "tsconfig.json","testTsconfig": "tsconfig.json","prefix": "app","styles": [ "styles.css","custom_theme.scss" ],"scripts": [],"environmentSource": "environments/environment.ts","environments": { "dev": "environments/environment.ts","prod": "environments/environment.prod.ts" } } ],"e2e": { "protractor": { "config": "./protractor.conf.js" } },"lint": [ { "files": "src/**/*.ts","project": "src/tsconfig.json" },{ "files": "e2e/**/*.ts","project": "e2e/tsconfig.json" } ],"test": { "karma": { "config": "./karma.conf.js" } },"defaults": { "styleExt": "css","class": { "spec": false },"component": { "spec": true,"inlineStyle": false,"inlineTemplate": false } } } 解决方法
错误发生在karma.conf.js文件中,因为test.ts的路径指向src文件夹,这是错误的:
... files: [ { pattern: './src/test.ts',watched: false } ],preprocessors: { './src/test.ts': ['@angular/cli'] } ..., 解决方案:我已将文件test.ts从root删除到/ src文件夹:/src/test.ts并按预期运行命令. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |