Saya mencoba menambahkan beberapa pengujian unit ke salah satu proyek saya.
Sejauh ini saya telah menginstal dan mengkonfigurasi karma, dan telah menginstal Jasmine. Saya punya satu file uji di test/
folder saya .
Server karma telah dimulai, halaman browser sudah siap, tetapi karma run
gagal sebagai berikut:
$ karma run karma-conf.js
[2014-06-14 15:19:11.046] [DEBUG] config - Loading config /foo/test/karma-conf.js
Waiting for previous execution...
Chrome 35.0.1916 (Linux) ERROR
You need to include some adapter that implements __karma__.start method!
Pesan kesalahan ini tidak Google dengan baik.
Apakah ini sesuatu yang jelas, atau apakah saya perlu memberikan informasi lebih lanjut?
karma-runner
karma-jasmine
Drew Noakes
sumber
sumber
Jawaban:
Tampaknya ini adalah kesalahan yang sangat umum, namun dalam kasus saya masalahnya adalah saya tidak menjalankan
karma start
dari folder yang benar, atau saya tidak memulai ulang setelah mengubah konfigurasi.Saya akan membiarkan pertanyaan ini terbuka dan semoga dapat menjadi sumber bagi orang lain yang mengalami pesan kesalahan ini.
sumber
karma start test/karma.conf.js
melakukan triknya untukku. Direktori yang benar mungkin berbeda untuk Anda.test/**/*.{js,jsx}
untuktest/**/*.+(js|jsx)
memperbaiki kesalahan ini. Aneh sekali!Jika Anda menamai file konfigurasi karma
karma.conf.js
Anda, Anda cukup mengetikkarma start
.Jika tidak, tentukan nama file
karma start karmafile.js
(Saya berada di direktori yang benar, tetapi tidak menentukan nama file.)
sumber
Anda perlu menjalankan
karma run
fungsi Anda atau apa pun di folder tempat karma-conf.js berada.sumber
karma start
disrc
subfolder di manakarma.conf.js
berada saya mendapatkan kesalahan[karma-server]: Server start failed on port 9876: Error: The '@angular-devkit/build-angular/plugins/karma' karma plugin is meant to be used from within Angular CLI and will not work correctly outside of it.
Dalam kasus saya, saya harus mengganti nama file menjadi karma.conf.js kemudian melakukan karma start
sumber
Saya punya masalah dengan
karma.conf.js
format kode file:Koma ekstra dalam
files
array menyebabkan kesalahan ini:sumber
Saya tidak menjalankan perintah mulai karma dari jalur tempat karma.conf.js saya berada. Saya beralih ke folder itu dan menjalankan perintah yang sama. Itu saja
sumber
Saya menghadapi masalah ini saat menjalankan spesifikasi pada basis kode Angular.js. Aku harus lari
npm install karma-jasmine -g
agar ini berhasil.sumber
Jika Anda mengetik "karma start", Anda harus memiliki file karma.conf.js di folder saat ini. atau hanya "karma start /path/karma.conf.js"
Cobalah untuk membuat karmar.conf.js baru dengan "karma init /path/karma.conf.js"
sumber
Dalam kasus saya, saya tidak sengaja menerapkan preprocessor commonjs ke
karma-*
modul danadapter.js
darikarma-chrome
dankarma-firefox
rusak dengan cara ini.Sayangnya, ini adalah kesalahan yang sangat umum.
sumber
Saya mendapatkan kesalahan yang sama karena proyek menggunakan Babel 6 dan saya lupa menambahkan file babelrc. Hanya berbagi kalau-kalau ini bisa membantu.
sumber
Dalam kasus saya, pesan tersebut sebenarnya sangat deskriptif: Saya lupa menambahkan adaptor, dalam kasus saya Jasmine, ke dalam file konfigurasi. Jadi:
sumber
Anda perlu mengkonfigurasi file "my.conf.js" Anda, karena berisi semua info yang akan digunakan untuk menguji kode Anda.
Semua yang perlu Anda tulis adalah ini:
File konfigurasi dapat dibuat menggunakan karma init:
Framework pengujian mana yang ingin Anda gunakan? Tekan tab untuk mendaftar opsi yang memungkinkan. Enter untuk pindah ke pertanyaan berikutnya.
Apakah Anda ingin menggunakan Require.js? Ini akan menambahkan plugin Require.js. Tekan tab untuk mendaftar opsi yang memungkinkan. Enter untuk pindah ke pertanyaan berikutnya.
Apakah Anda ingin menangkap browser secara otomatis? Tekan tab untuk mendaftar opsi yang memungkinkan. Masukkan string kosong untuk pindah ke pertanyaan berikutnya.
Apa lokasi sumber dan file pengujian Anda? Anda dapat menggunakan pola glob, mis. "js / *. js" atau "test / ** / * Spec.js". Tekan Enter untuk pindah ke pertanyaan berikutnya.
Haruskah salah satu file yang disertakan oleh pola sebelumnya dikecualikan? Anda dapat menggunakan pola glob, mis. "** / *. swp".
Apakah Anda ingin Karma melihat semua file dan menjalankan pengujian saat berubah? Tekan tab untuk mendaftar opsi yang memungkinkan.
File konfigurasi dibuat di "/Users/vojta/Code/karma/my.conf.js".
sumber
Saya harus menambahkan bahwa dalam kasus saya karma memberi saya kesalahan karena saya memiliki tanda kurung [persegi] di nama salah satu folder induk.
sumber
Masalah yang sama terjadi pada saya, dan itu karena modul yang sudah ketinggalan zaman.
Menjalankan
npm update
menyelesaikannya.sumber
Aku mengeluh tentang adaptor yang mungkin melati atau moka. Entah adaptornya tidak ada, atau tidak disiapkan dengan benar, baik itu versi adaptor yang kedaluwarsa atau bermasalah.
Dalam kasus saya, saya memiliki versi lama mocha 2.5.3 yang tidak kompatibel dengan karma 1+. Saya memperbarui ketergantungan mocha ke versi terbaru yang tersedia 3.2.0 dan masalah terpecahkan.
sumber
Saat mengerjakan banyak kesalahan yang dijelaskan secara samar-samar, saya mencoba menyetel basePath: '../', Setelah mengoreksi kesalahan lain (seperti koma yang hilang yang dideskripsikan sebagai kesalahan konten objek) perubahan terakhir kembali ke basePath: '', membuat karma berfungsi. Pernyataan kesalahan karma membutuhkan banyak pekerjaan. Tidak mudah untuk mewujudkannya.
sumber
Saya memiliki masalah yang sama. Browser saya terbuka tetapi pada terminal saya muncul kesalahan berikut
Saya memeriksa file karma.conf.js saya. Dalam susunan kerangka kerja, saya telah memasukkan melati dan membutuhkanjs. Tetapi saya hanya memasang karma-jasmine. Menghapus RequirementJS dan menjalankan kembali karma mulai berhasil!
sumber
Anda harus menentukan direktori
karma.config.js
kapan Anda menjalankan start karma.Mencoba
karma start karma.config.js
sumber
Saya memiliki konfigurasi 'file' yang buruk di karma.conf.js saya
ini menangkap semua file di node_modules / termasuk yang ada di plugin karma-jasmine, karena itu terlihat sebagai file sumber yang tidak dimuat saat startup. Mengubah ke
memecahkan masalah dalam kasus saya
sumber
FWIW - mencari sumber jalur file
karma.conf.js
bekerja untuk saya secara lokal, tetapi tidak pada pembuat jenkins saya. Saya tidak tahu mengapa ini terjadi, tetapi pada jenkins itu melemparkan kesalahan ini kecualikarma.conf.js
file itu ada di direktori root tempat perintah karma diberikan. Saya menggunakan rails dan menjalankan spesifikasi js melalui rake task. Kode di bawah ini mungkin berguna bagi sebagian orang.https://gist.github.com/daino3/a39486ff8bfc1668e923
sumber
Masalah dalam kasus saya adalah karma tidak mengambil file apa pun. Memperbaiki di karma.conf.js menyelesaikan masalah.
sumber
Dalam kasus saya, itu sama sekali tidak terkait dengan karma! Saya menjalankan karma dari gulp, dengan ES6 / babel, dan sebenarnya ada kesalahan sintaks kode, ditandai oleh kesalahan babel di atas karma saya:
Saya memperbaikinya di src dan karma saya bahagia lagi.
sumber
Saya telah berjuang dengan ini juga. Apa yang saya temukan adalah bahwa kesalahan ini terjadi karena salah satu alasan berikut
karma.conf.js
di dir saat ini atau tidak ada file konfigurasi yang ditentukan dalam perintah)Masalah saya adalah file konfigurasi saya diberi nama,
karma.config.js
bukankarma.conf.js
.Jika Anda telah menginstal adaptor uji tetapi masih tidak berfungsi, coba jalankan
karma init
dan lakukan penyiapan konfigurasi terpandu.sumber
Dalam kasus saya, nama file konfigurasi berbeda . Jadi, menjalankan perintah yang menentukan file conf memecahkan masalah saya.
Dan untuk 'PhantomJS', membuka tautan yang ditentukan ( localhost: 9876 ) di browser menjalankan kasus uji.
Semoga membantu. :)
EDIT 1: File Konfigurasi Karma Saya
sumber
Saya menerima kesalahan ini karena saya membutuhkan ketergantungan yang sama dua kali!
Menghapus ketergantungan file duplikat menghapus kesalahan bagi saya. Dilingkari dengan warna biru di bawah.
sumber
Anda harus menentukan file konfigurasi karma ke karma.
Ini bekerja untuk saya
sumber