Estoy intentando agregar algunas pruebas unitarias a uno de mis proyectos.
Hasta ahora he instalado y configurado karma, y he instalado jasmine. Tengo un archivo de prueba en mi test/
carpeta.
El servidor de karma se ha iniciado, la página del navegador está lista, pero karma run
falla de la siguiente manera:
$ 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!
Este mensaje de error no Google bien.
¿Es esto algo obvio o necesito proporcionar más información?
karma-runner
karma-jasmine
Dibujó Noakes
fuente
fuente
Respuestas:
Parece que este es un error muy general, sin embargo, en mi caso, el problema fue que no ejecuté
karma start
desde la carpeta correcta o que no lo reinicié después de cambiar la configuración.Dejaré esta pregunta abierta y espero que pueda convertirse en un recurso para otras personas que experimenten este mensaje de error.
fuente
karma start test/karma.conf.js
sirvió. El directorio correcto puede ser diferente para usted.test/**/*.{js,jsx}
atest/**/*.+(js|jsx)
solucionó este error. ¡Qué extraño!Si nombra su archivo de configuración de karma
karma.conf.js
, simplemente escribakarma start
.De lo contrario, especifique el nombre del archivo
karma start karmafile.js
(Estaba en el directorio correcto, pero no estaba especificando un nombre de archivo).
fuente
karma run
Debe ejecutar su función o cualquier otra en la carpeta donde se encuentra karma-conf.js.fuente
karma start
en lasrc
subcarpeta dondekarma.conf.js
se encuentra, aparece un error[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.
En mi caso, tuve que cambiar el nombre del archivo a karma.conf.js y luego hacer karma start
fuente
Tuve un problema con
karma.conf.js
el formato del código de archivo:La coma adicional en la
files
matriz ha causado este error:fuente
No estaba ejecutando el comando karma start desde la ruta donde estaba mi karma.conf.js. Cambié a esa carpeta y ejecuté el mismo comando. Eso es todo
fuente
Me enfrentaba a este problema mientras ejecutaba especificaciones en el código base de Angular.js. Tuve que correr
npm install karma-jasmine -g
para que esto funcionara.fuente
Si escribe "karma start", debe tener un archivo karma.conf.js en la carpeta actual. o simplemente "karma start /path/karma.conf.js"
Intente crear un nuevo karmar.conf.js mediante "karma init /path/karma.conf.js"
fuente
En mi caso, estaba aplicando por error el preprocesador commonjs a los
karma-*
módulos yadapter.js
desdekarma-chrome
ykarma-firefox
se rompió de esta manera.Desafortunadamente, este es un error muy genérico.
fuente
Recibía el mismo error porque el proyecto usaba Babel 6 y me había olvidado de agregar el archivo babelrc. Solo compartir en caso de que esto pueda ayudar.
fuente
En mi caso, el mensaje fue muy descriptivo: olvidé agregar un adaptador, en mi caso Jasmine, en el archivo de configuración. Así:
fuente
Necesita configurar su archivo "my.conf.js", porque contiene toda la información que se utilizará para probar su código.
Todo lo que necesitas escribir es esto:
El archivo de configuración se puede generar usando karma init:
¿Qué marco de prueba desea utilizar? Presione el tabulador para enumerar las posibles opciones. Ingrese para pasar a la siguiente pregunta.
¿Quieres usar Require.js? Esto agregará el complemento Require.js. Presione el tabulador para enumerar las posibles opciones. Ingrese para pasar a la siguiente pregunta.
¿Quieres capturar un navegador automáticamente? Presione el tabulador para enumerar las posibles opciones. Ingrese una cadena vacía para pasar a la siguiente pregunta.
¿Cuál es la ubicación de sus archivos fuente y de prueba? Puede utilizar patrones glob, por ejemplo. "js / *. js" o "prueba / ** / * Spec.js". Presione Enter para pasar a la siguiente pregunta.
¿Debería excluirse alguno de los archivos incluidos en los patrones anteriores? Puede utilizar patrones glob, por ejemplo. "** / *. swp".
¿Quieres que Karma observe todos los archivos y ejecute las pruebas al cambiar? Presione el tabulador para enumerar las posibles opciones.
Archivo de configuración generado en "/Users/vojta/Code/karma/my.conf.js".
fuente
Debo agregar que en mi caso karma me estaba dando el error porque tenía corchetes en el nombre de una de las carpetas principales.
fuente
El mismo problema me sucedió a mí y se debió a un módulo desactualizado.
Correr lo
npm update
resolvió.fuente
Tt se queja del adaptador, que probablemente sea jazmín o moka. O falta el adaptador, o no está configurado correctamente, o es una versión desactualizada o con errores del adaptador.
En mi caso, tenía una versión antigua de mocha 2.5.3 que no era compatible con karma 1+. Actualicé la dependencia de mocha a la última versión disponible 3.2.0 y el problema se resolvió.
fuente
Mientras trabajaba en numerosos errores descritos vagamente, intenté configurar basePath: '../', después de corregir otros errores (como las comas faltantes que se describieron como errores de contenido del objeto), el último cambio de regreso a basePath: '', hizo que el karma funcionara. Las declaraciones de error de karma necesitan mucho trabajo. No es sencillo ponerlo en marcha.
fuente
Tuve el mismo problema. Mi navegador se abriría pero en mi terminal arrojó el siguiente error
Revisé mi archivo karma.conf.js. En la matriz de marco, había incluido jasmine y requirejs. Pero solo había instalado karma-jasmine. ¡Quitar requireJS y volver a ejecutar el karma start funcionó!
fuente
Tendrá que especificar el directorio de
karma.config.js
cuando ejecuta start karma.Tratar
karma start karma.config.js
fuente
Tenía una mala configuración de 'archivos' en mi karma.conf.js
esto capturó todos los archivos en node_modules / incluidos los del complemento karma-jasmine, ya que se vio como archivos fuente que no se cargó al inicio. Cambiar a
resolvió el problema en mi caso
fuente
FWIW: obtener la ruta del archivo
karma.conf.js
me funcionó localmente, pero no en mi constructor jenkins. No tengo ni idea de por qué este es el caso, pero en jenkins arrojaba este error a menos que elkarma.conf.js
archivo estuviera en el directorio raíz donde se dio el comando karma. Estoy usando rieles y ejecutando las especificaciones js a través de una tarea de rake. A continuación se muestra el código que podría ser útil para algunos.https://gist.github.com/daino3/a39486ff8bfc1668e923
fuente
El problema en mi caso fue que el karma no recogió ningún archivo. Arreglarlo en karma.conf.js resolvió el problema.
fuente
En mi caso, ¡no estaba relacionado con el karma en absoluto! Ejecuté karma desde gulp, con ES6 / babel, y en realidad hubo un error de sintaxis de código, marcado por un error de babel por encima de mi karma:
Lo arreglé en mi src y karma volvió a ser feliz.
fuente
Yo también he estado luchando con esto. Lo que se me ocurrió es que este error se produce debido a una de las siguientes razones
karma.conf.js
en el directorio actual o no se especificó ningún archivo de configuración en el comando)Mi problema fue que mi archivo de configuración fue nombrado en
karma.config.js
lugar dekarma.conf.js
.Si ha instalado el adaptador de prueba pero aún no funciona, intente ejecutarlo
karma init
y siga la configuración de configuración guiada.fuente
En mi caso, el nombre del archivo de configuración era diferente . Entonces, ejecutar el comando que especifica el archivo conf resolvió mi problema.
Y para 'PhantomJS', al abrir el enlace especificado ( localhost: 9876 ) en el navegador se ejecutan los casos de prueba.
Espero eso ayude. :)
EDITAR 1: Mi archivo de configuración de Karma
fuente
¡Recibí este error porque necesitaba la misma dependencia dos veces!
Eliminar la dependencia de archivos duplicados eliminó el error para mí. Rodeado en azul a continuación.
fuente
Debe especificar el archivo de configuración de karma a karma.
Esto funciona para mi
fuente