【发布时间】:2018-12-01 01:53:47
【问题描述】:
我一直在尝试根据通用准则设置一个测试示例:Testing in Ionic、Ionic GitHub Example
我的项目package.json:
{
"name": "starter-with-testing",
"version": "0.0.1",
"author": "Ionic Framework",
"homepage": "http://ionicframework.com/",
"private": true,
"scripts": {
"clean": "ionic-app-scripts clean",
"build": "ionic-app-scripts build",
"lint": "ionic-app-scripts lint",
"ionic:build": "ionic-app-scripts build",
"ionic:serve": "ionic-app-scripts serve",
"test": "karma start ./test-config/karma.conf.js"
},
"dependencies": {
"@angular/animations": "5.2.11",
"@angular/common": "5.2.11",
"@angular/compiler": "5.2.11",
"@angular/compiler-cli": "5.2.11",
"@angular/core": "5.2.11",
"@angular/forms": "5.2.11",
"@angular/http": "5.2.11",
"@angular/platform-browser": "5.2.11",
"@angular/platform-browser-dynamic": "5.2.11",
"@ionic-native/core": "4.7.0",
"@ionic-native/splash-screen": "4.7.0",
"@ionic-native/status-bar": "4.7.0",
"@ionic/storage": "2.1.3",
"ionic-angular": "3.9.2",
"ionicons": "3.0.0",
"rxjs": "5.5.11",
"sw-toolbox": "3.6.0",
"zone.js": "0.8.26"
},
"devDependencies": {
"@ionic/app-scripts": "^3.1.10",
"@types/jasmine": "^2.8.8",
"@types/node": "^10.3.4",
"angular2-template-loader": "^0.6.2",
"html-loader": "^0.5.5",
"istanbul-instrumenter-loader": "^3.0.1",
"jasmine": "^3.1.0",
"jasmine-spec-reporter": "^4.2.1",
"karma": "^2.0.3",
"karma-chrome-launcher": "^2.2.0",
"karma-coverage-istanbul-reporter": "^2.0.1",
"karma-jasmine": "^1.1.2",
"karma-jasmine-html-reporter": "^1.1.0",
"karma-sourcemap-loader": "^0.3.7",
"karma-webpack": "^3.0.0",
"null-loader": "^0.1.1",
"protractor": "^5.3.2",
"ts-loader": "^4.4.1",
"ts-node": "^6.1.2",
"typescript": "~2.6.2"
},
"description": "An Ionic project"
}
尝试$ npm test 会导致错误:
Chrome 67.0.3396 (Linux 0.0.0) ERROR
{
"message": "An error was thrown in afterAll\nUncaught Error: Module build failed: Error: You may be using an old version of webpack; please check you're using at least version 4\n at successfulTypeScriptInstance (/home/alexey/spaces/cordova/starter-with-testing/node_modules/ts-loader/dist/instances.js:168:15)\n at Object.getTypeScriptInstance (/home/alexey/spaces/cordova/starter-with-testing/node_modules/ts-loader/dist/instances.js:51:12)\n at Object.loader (/home/alexey/spaces/cordova/starter-with-testing/node_modules/ts-loader/dist/index.js:16:41)"
即需要 webpack 4.x。确实,
$ npm list webpack
starter-with-testing@0.0.1 /home/alexey/spaces/cordova/starter-with-
testing
└─┬ @ionic/app-scripts@3.1.10
└── webpack@3.8.1
我该怎么办?
更新:
我遇到了It looks like your post is mostly code; please add some more details. 致命错误。无法提交您的问题。
我真的不知道更多细节。有一个依赖地狱;请帮忙。我会谦虚地提交您要求的任何其他详细信息。
【问题讨论】:
-
你的 karma.conf 文件是什么样的?
-
这样的 karma.conf 有很多。它们也足够长。
test-config/karma.conf.js包含var webpackConfig = require('./webpack.test.js');;test-config/webpack.test.js包含var webpack = require('webpack');。没什么。你能说得更具体一点吗?
标签: unit-testing ionic-framework karma-jasmine