เมื่อฉันรันคำสั่งgrunt
ฉันได้รับคำเตือนต่อไปนี้:
Running "karma:unit" (karma) task
Warning: No provider for "framework:jasmine"! (Resolving: framework:jasmine) Use --force to continue.
มีใครทราบวิธีแก้ไขปัญหานี้บ้างไหม
เมื่อฉันรันคำสั่งgrunt
ฉันได้รับคำเตือนต่อไปนี้:
Running "karma:unit" (karma) task
Warning: No provider for "framework:jasmine"! (Resolving: framework:jasmine) Use --force to continue.
มีใครทราบวิธีแก้ไขปัญหานี้บ้างไหม
คำตอบ:
ฉันมีข้อผิดพลาดเดียวกันหลังจากสร้างโปรเจ็กต์ใหม่เครื่องกำเนิดไฟฟ้าเชิงมุมเยมัน
วิธีแก้ปัญหาสำหรับฉันคือการเพิ่ม "กรรม - จัสมิน" ใน devDependencies ใน package.json และเรียกใช้ "npm install" อีกครั้ง
npm install karma-jasmine --save-dev
วิธีนี้แก้ไขข้อความแสดงข้อผิดพลาด "ไม่มีผู้ให้บริการสำหรับ" framework: jasmine "!"
ฉันต้องเพิ่มตัวเรียกใช้เบราว์เซอร์กรรมใน devDependencies ด้วยเนื่องจากฉันได้รับข้อความว่าไม่มีการติดตั้งตัวเรียกใช้งาน (ดูhttp://karma-runner.github.io/0.10/config/browsers.html )
npm install karma-safari-launcher --save-dev
package.json ของฉันดูเหมือนสิ่งนี้หลังจากการกระทำของฉัน:
{
"name": "test1",
"version": "0.0.0",
"dependencies": {},
"devDependencies": {
"grunt": "~0.4.1",
"grunt-autoprefixer": "~0.4.0",
"grunt-bower-install": "~0.7.0",
"grunt-concurrent": "~0.4.1",
"grunt-contrib-clean": "~0.5.0",
"grunt-contrib-coffee": "~0.7.0",
"grunt-contrib-compass": "~0.6.0",
"grunt-contrib-concat": "~0.3.0",
"grunt-contrib-connect": "~0.5.0",
"grunt-contrib-copy": "~0.4.1",
"grunt-contrib-cssmin": "~0.7.0",
"grunt-contrib-htmlmin": "~0.1.3",
"grunt-contrib-imagemin": "~0.3.0",
"grunt-contrib-jshint": "~0.7.1",
"grunt-contrib-uglify": "~0.2.0",
"grunt-contrib-watch": "~0.5.2",
"grunt-google-cdn": "~0.2.0",
"grunt-newer": "~0.5.4",
"grunt-ngmin": "~0.0.2",
"grunt-rev": "~0.1.0",
"grunt-svgmin": "~0.2.0",
"grunt-usemin": "~2.0.0",
"jshint-stylish": "~0.1.3",
"load-grunt-tasks": "~0.2.0",
"time-grunt": "~0.2.1",
"karma-ng-scenario": "^0.1.0",
"grunt-karma": "^0.8.0",
"karma": "^0.12.0",
"karma-jasmine": "~0.2.2",
"karma-safari-launcher": "~0.1.1",
"karma-ng-html2js-preprocessor": "^0.1.0"
},
"engines": {
"node": ">=0.8.0"
},
"scripts": {
"test": "grunt test"
}
}
ฉันเปลี่ยนบรรทัดต่อไปนี้ในarma.conf enarma-e2e.conf เพื่อใช้ตัวเรียกใช้กรรมซาฟารี:
browsers: ['Safari'],
ฉันหวังว่านี่จะได้ผลสำหรับคุณเช่นกัน
Error: No provider for "framework:karma-chrome-launcher"!
หลังจากนี้
ในฐานะที่เป็น @Taco กล่าวว่าวิธีการแก้ปัญหาเริ่มต้นสำหรับปัญหานี้จะติดตั้งปลั๊กอินที่เหมาะสมเช่นนี้หรือนี้:npm install karma-jasmine --save-dev
npm install karma-mocha --save-dev
อย่างไรก็ตามข้อผิดพลาดนี้คาดว่าจะเกิดขึ้นเมื่อคุณใช้งานเวอร์ชันเก่าkarma-cli
เนื่องจากอัปเดตวิธีการโหลดปลั๊กอินของกรรม เพื่อให้แน่ใจว่าคุณมีเวอร์ชันล่าสุดให้รันสิ่งนี้:
npm install -g karma-cli
npm install -g karma
เป็นไม่ได้npm install -g karma-cli
เป็นสิ่งเดียวกับ
npm install -g karma
แต่มันใช้ไม่ได้ คุณต้องใช้npm install -g karma-cli
ปัญหาของฉันอยู่ในkarma.config.js
ไฟล์ของฉัน:
plugins: [require("karma-webpack")]
สิ่งนี้ทำให้karma-*
ไม่สามารถโหลดปลั๊กอินอื่น ๆได้ซึ่งรวมถึงkarma-jasmine
.
karma-webpack
อยู่ในของฉันpackage.json
's devDependencies
ผมออกความเห็นนี้plugins
ในรายการของฉันkarma.config.js
ไฟล์
หากคุณkarma.conf.js
ระบุplugins
แอตทริบิวต์อย่าลืมเพิ่มลงkarma-jasmine
ในรายการ หากปลั๊กอินทั้งหมดขึ้นต้นด้วยkarma-
คุณไม่จำเป็นต้องระบุแอตทริบิวต์นี้เนื่องจากปลั๊กอินจะโหลดโดยอัตโนมัติ
plugins: ['karma-jasmine', 'karma-chrome-launcher', 'karma-spec-reporter', 'karma-coverage'],
มันเกิดขึ้นกับฉันเพราะฉันติดตั้ง Karma ไว้ทั่วโลกและเมื่อฉันรันคำสั่งเริ่มต้นกรรมจริงมันก็วิ่งใน / usr / ... แทนที่จะเป็นไดเร็กทอรี dev ของฉัน
ในกรณีของฉันการแก้ปัญหาคือการลบกรรมและติดตั้งกรรม - คลิแทน
npm remove -g karma
npm install -g karma-cli
npm install karma-chrome-launcher --save-dev