ไม่มีผู้ให้บริการ "กรอบ: ดอกมะลิ"! (แก้ไข: กรอบ: จัสมิน)


98

เมื่อฉันรันคำสั่งgruntฉันได้รับคำเตือนต่อไปนี้:

Running "karma:unit" (karma) task
Warning: No provider for "framework:jasmine"! (Resolving: framework:jasmine) Use --force to continue.

มีใครทราบวิธีแก้ไขปัญหานี้บ้างไหม

คำตอบ:


181

ฉันมีข้อผิดพลาดเดียวกันหลังจากสร้างโปรเจ็กต์ใหม่เครื่องกำเนิดไฟฟ้าเชิงมุมเยมัน

วิธีแก้ปัญหาสำหรับฉันคือการเพิ่ม "กรรม - จัสมิน" ใน 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'],

ฉันหวังว่านี่จะได้ผลสำหรับคุณเช่นกัน


2
ขอบคุณ! สิ่งเดียวที่ฉันแตกต่างคือฉันใช้โครเมี่ยมnpm install karma-chrome-launcher --save-dev
Luciano

1
@KyleHayes นี่คือรายงานข้อผิดพลาดในโครงการเครื่องกำเนิดไฟฟ้าเชิงมุม: github.com/yeoman/generator-angular/issues/629
cjerdonek

1
ฉันได้รับError: No provider for "framework:karma-chrome-launcher"!หลังจากนี้
เดวิด

1
หากคุณมีปลั๊กอิน: [... ] เพิ่มในarma.config.jsการติดตั้งกรรม - จัสมินจะไม่สามารถแก้ปัญหาได้ คุณต้องเพิ่ม 'กรรม - จัสมิน' ในปลั๊กอินอาร์เรย์เช่นปลั๊กอิน: ['กรรม - จัสมิน']
Thaadikkaaran

ตามความเข้าใจของฉัน "npm installarma-jasmine --save-dev" ไม่มีผลใด ๆ กับ package.json ขอขอบคุณสำหรับการแก้ปัญหานี้
Andy

37

ในฐานะที่เป็น @Taco กล่าวว่าวิธีการแก้ปัญหาเริ่มต้นสำหรับปัญหานี้จะติดตั้งปลั๊กอินที่เหมาะสมเช่นนี้หรือนี้:npm install karma-jasmine --save-devnpm install karma-mocha --save-dev

อย่างไรก็ตามข้อผิดพลาดนี้คาดว่าจะเกิดขึ้นเมื่อคุณใช้งานเวอร์ชันเก่าkarma-cliเนื่องจากอัปเดตวิธีการโหลดปลั๊กอินของกรรม เพื่อให้แน่ใจว่าคุณมีเวอร์ชันล่าสุดให้รันสิ่งนี้:

npm install -g karma-cli

1
สิ่งนี้แก้ไขให้ฉัน ฉันมีการพึ่งพาที่กล่าวถึงก่อนหน้านี้ แต่กรรม - คลิล้าสมัยอย่างเห็นได้ชัด
icfantv

1
สิ่งนี้ช่วยแก้ปัญหาของฉันได้ ขอบคุณเพื่อน
shaikh

1
ฉันก็เจอเรื่องนี้เหมือนกัน เห็นได้ชัดว่าnpm install -g karmaเป็นไม่ได้npm install -g karma-cliเป็นสิ่งเดียวกับ
Peter Majeed

@PeterMajeed หลังจากติดตั้งจัสมินฉันคิดว่าอาจจะทำได้npm install -g karmaแต่มันใช้ไม่ได้ คุณต้องใช้npm install -g karma-cli
Coburn

34

ปัญหาของฉันอยู่ในkarma.config.jsไฟล์ของฉัน:

plugins: [require("karma-webpack")]

สิ่งนี้ทำให้karma-*ไม่สามารถโหลดปลั๊กอินอื่น ๆได้ซึ่งรวมถึงkarma-jasmine.


1
aleclarson ก็เป็นปัญหาของฉันเช่นกัน ตั้งแต่karma-webpackอยู่ในของฉันpackage.json's devDependenciesผมออกความเห็นนี้pluginsในรายการของฉันkarma.config.jsไฟล์
dave_k_smith

31

หากคุณkarma.conf.jsระบุpluginsแอตทริบิวต์อย่าลืมเพิ่มลงkarma-jasmineในรายการ หากปลั๊กอินทั้งหมดขึ้นต้นด้วยkarma-คุณไม่จำเป็นต้องระบุแอตทริบิวต์นี้เนื่องจากปลั๊กอินจะโหลดโดยอัตโนมัติ


6
ขอบคุณสิ่งนี้ช่วยแก้ปัญหาของฉันได้โดยเพิ่มกรรม - จัสมินลงในปลั๊กอิน!
sandip

ขอบคุณที่ใช้งานได้ - นี่คือบรรทัดเต็ม plugins: ['karma-jasmine', 'karma-chrome-launcher', 'karma-spec-reporter', 'karma-coverage'],
Sam Deering

6

มันเกิดขึ้นกับฉันเพราะฉันติดตั้ง Karma ไว้ทั่วโลกและเมื่อฉันรันคำสั่งเริ่มต้นกรรมจริงมันก็วิ่งใน / usr / ... แทนที่จะเป็นไดเร็กทอรี dev ของฉัน

ในกรณีของฉันการแก้ปัญหาคือการลบกรรมและติดตั้งกรรม - คลิแทน

npm remove -g karma
npm install -g karma-cli

2

ปัญหาของฉันคือ "แพ็คเกจ Karma" ที่เลือกในการกำหนดค่าการเรียกใช้ IntelliJ ฉันไม่ได้เลือกแพ็คเกจกรรมของโปรเจ็กต์ในโฟลเดอร์ "node_module" ของโปรเจ็กต์: ป้อนคำอธิบายภาพที่นี่


นี่คือสิ่งที่ฉันกำลังมองหา
vivekmore
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.