angular - ng test angular 7 无法识别窗口对象中的用户定义方法
问题描述
尝试运行命令 ng test 结果是错误:找不到名称'isEmpty'
方法 'isEmpty' 在 global.ts 中声明为 utils
const _global = (window)
_global.isEmpty = function(...args): boolean {
for (let i = 0; i < arguments.length; i++) {
let object = arguments[i];
if (object == null ||
object == undefined ||
(typeof object === 'object' && Object.keys(object).length == 0) ||
(typeof object === 'string' && object.trim().length == 0))
return true;
}
ng serve 在 app-module 中添加了这个文件
但 ng 测试无法识别
角 CLI:7.3.8
节点:10.15.3
角度:7.2.1
业力.conf.js
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
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', 'text-summary'],
fixWebpackSourcePaths: true
},
reporters: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false
});
};
tsconfig.spec.json
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/spec",
"types": [
"jasmine",
"node"
]
},
"files": [
"test.ts",
"polyfills.ts"
],
"include": [
"**/*.spec.ts",
"**/*.d.ts"
]
}
如何解决这个问题呢 ?
解决方案
推荐阅读
- python - 用 One Time Pad 破解 Python 问题
- python - 在 R 或 Python 中将非结构化数据从 pdf 解析为结构化数据
- python - 点和线串之间的最大距离
- amazon-web-services - 在 API Gateway 的访问日志中记录响应标头
- java - Java compareTo 方法失败
- javascript - Vue 应用程序未显示 Vuex 中的数据
- mysql - Azure MySQL Azure Active Directory 访问令牌
- excel - 有没有办法让两个单元格在 Excel 中相互引用?
- javascript - 请求从客户端和服务器端删除后仍然附加cookie
- flutter - Dart2,如何避免“在 null 上调用了方法 '[]'。” 在 LIST 上