我的环境非常类似于具有一个差异的官方angular2 Quickstart:而不是public/src/app
,我有public/app
。
尝试用ViewChild
测试Component
时:
@ViewChild('profileModal')
profileModal: ModalComponent;
在被测试的组件中加载为:
import { ModalComponent } from 'ng2-bs3-modal/ng2-bs3-modal';
npm test
显示此错误:
05 05 2017 17:45:48.218:WARN [web-server]: 404: /base/ng2-bs3-modal/ng2-bs3-modal
[1] Chrome 58.0.3029 (Mac OS X 10.12.2) ERROR
[1] {
[1] "originalErr": {
[1] "__zone_symbol__currentTask": {
[1] "type": "microTask",
[1] "state": "notScheduled",
[1] "source": "Promise.then",
[1] "zone": "<root>",
[1] "cancelFn": null,
[1] "runCount": 0
[1] }
[1] },
[1] "__zone_symbol__currentTask": {
[1] "type": "microTask",
[1] "state": "notScheduled",
[1] "source": "Promise.then",
[1] "zone": "<root>",
[1] "cancelFn": null,
[1] "runCount": 0
[1] }
[1] }
KRARMA.CONFIG.JS: [为简短而省略]
module.exports = function(config) {
var appBase = 'app/'; // transpiled app JS and map files
var appSrcBase = appBase; // app source TS files
config.set({
basePath: '.',
proxies: {
'/base/node_modules/': '/base/node_modules/'
},
})
}
我该如何告诉karma
从/base/npm_modules/ng2-bs3-modal/ng2-bs3-modal
而不是/base/ng2-bs3-modal/ng2-bs3-modal
加载。
使用SystemJs
代替Webpack
。
您应该将其放在karma.config文件的"文件"部分中:
files: [ 'node_modules/ng2-bs3-modal/ng2-bs3-modal.js' ]
不确定您是否已经在配置文件中有该部分,但以防万一,请记住,您可以通过Systemjs配置来加载应用程序及其依赖项:
files: [
// System.js for module loading
'node_modules/systemjs/dist/system.src.js',
// Load any lib not included in systemjs.config here, like zone.js
'node_modules/zone.js/dist/zone.js',
// RxJs
{ pattern: 'node_modules/rxjs/**/*.js', included: false, watched: false },
{ pattern: 'node_modules/rxjs/**/*.js.map', included: false, watched: false},
// Paths loaded via module imports:
// Angular itself
{ pattern: 'node_modules/@angular/**/*.js', included: false, watched: false },
{ pattern: 'node_modules/@angular/**/*.js.map', included: false, watched: false },
{ pattern: 'systemjs.config.js', included: false, watched: false },
{ pattern: 'systemjs.config.extras.js', included: false, watched: false },
'karma-test-shim.js',
]
您可以参考此帖子以获取有关它的更多详细信息。