我将我的应用程序升级到Angular 6.在我必须对代码进行的所有更新之后,我的应用程序运行,但测试不会执行。
我使用getData
创建了一个新应用,并对下面的ng new Angular6
,karma.conf.js
,package.json
和test.ts
进行了比较。
karma.conf.js
angular.json (fmr angular-cli.json)
test.ts
module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine', '@angular-devkit/build-angular'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('@angular-devkit/build-angular/plugins/karma')
],
client: {
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
coverageIstanbulReporter: {
dir: require('path').join(__dirname, '../coverage'),
reports: ['html', 'lcovonly'],
fixWebpackSourcePaths: true
},
reporters: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false
});
};
的package.json
import 'zone.js/dist/zone-testing';
import { getTestBed } from '@angular/core/testing';
import {
BrowserDynamicTestingModule,
platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';
declare const require: any;
// 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);
angular.json
{
"name": "awesomy",
"version": "0.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve --proxy-config proxy.conf.js",
"build": "ng build --output-hashing=all --output-path=build/ --prod --source-map",
"test": "ng test --watch=false",
"lint": "ng lint taxonomy --format stylish --force && ng lint taxonomy-e2e --format stylish --force",
"e2e": "ng taxonomy-e2e --proxy-config proxy.conf.js"
},
"private": true,
"dependencies": {
"@angular/animations": "6.0.2",
"@angular/cdk": "^6.0.0",
"@angular/common": "6.0.2",
"@angular/compiler": "6.0.2",
"@angular/core": "6.0.2",
"@angular/forms": "6.0.2",
"@angular/http": "6.0.2",
"@angular/material": "^6.0.0",
"@angular/platform-browser": "6.0.2",
"@angular/platform-browser-dynamic": "6.0.2",
"@angular/router": "6.0.2",
"@codebakery/origami": "^1.3.0-beta.1",
"@ibm/plex": "^1.0.2",
"@swimlane/ngx-datatable": "11.3.2",
"@types/hammerjs": "^2.0.35",
"@types/lodash": "^4.14.108",
"bluebird": "^3.5.1",
"c3": "^0.4.18",
"core-js": "^2.4.1",
"d3": "^4.10.2",
"hammerjs": "^2.0.8",
"moment": "^2.20.1",
"ngx-uploader": "^4.3.0",
"rxjs": "^6.1.0",
"socket.io-client": "^2.0.4",
"zone.js": "^0.8.26"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.6.3",
"@angular/cli": "6.0.3",
"@angular/compiler-cli": "6.0.2",
"@angular/language-service": "6.0.2",
"@ng-select/ng-select": "^2.0.2",
"@types/jasmine": "^2.8.7",
"@types/jasminewd2": "~2.0.2",
"@types/node": "~6.0.60",
"codelyzer": "4.2.0",
"jasmine-core": "^3.1.0",
"jasmine-spec-reporter": "^4.2.1",
"karma": "^2.0.2",
"karma-chrome-launcher": "^2.2.0",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"karma-phantomjs-launcher": "^1.0.4",
"karma-typescript": "^3.0.12",
"protractor": "5.2.0",
"rxjs-compat": "^6.1.0",
"rxjs-tslint": "^0.1.4",
"ts-node": "3.2.0",
"tslint": "5.7.0",
"typescript": "2.7.2"
}
}
终端
{
...,
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"karmaConfig": "./karma.conf.js",
"polyfills": "src/polyfills.ts",
"tsConfig": "src/tsconfig.spec.json",
"scripts": [],
"styles": [
"src/styles.css",
"node_modules/c3/c3.min.css"
],
"assets": [
"src/assets",
"src/favicon.ico"
],
"watch": false,
"codeCoverage": true
}
},
...}
感谢您的时间!