Estou tentando adicionar alguns testes de unidade a um dos meus projetos.
Até agora eu instalei e configurei o karma, e instalei o jasmine. Tenho um arquivo de teste na minha test/
pasta.
O servidor karma foi iniciado, a página do navegador está pronta, mas karma run
falha da seguinte forma:
$ 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!
Esta mensagem de erro não faz bem ao Google.
É algo óbvio ou preciso fornecer mais informações?
karma-runner
karma-jasmine
Drew Noakes
fonte
fonte
Respostas:
Parece que este é um erro muito geral, no entanto, no meu caso, o problema foi não executar a
karma start
partir da pasta correta ou não reiniciá-lo após alterar a configuração.Vou deixar esta questão em aberto e espero que ela possa se tornar um recurso para outras pessoas que receberem essa mensagem de erro.
fonte
karma start test/karma.conf.js
fez o truque para mim. O diretório certo pode ser diferente para você.test/**/*.{js,jsx}
paratest/**/*.+(js|jsx)
corrigir esse erro. Que bizarro!Se você nomear o arquivo de configuração do karma
karma.conf.js
, pode simplesmente digitarkarma start
.Caso contrário, especifique o nome do arquivo
karma start karmafile.js
(Eu estava no diretório certo, mas não estava especificando um nome de arquivo.)
fonte
Você precisa executar sua
karma run
função ou qualquer outra função na pasta onde o karma-conf.js está.fonte
karma start
nasrc
subpasta ondekarma.conf.js
está localizado, obtenho um erro[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.
No meu caso, tive que renomear o arquivo para karma.conf.js e fazer karma start
fonte
Tive um problema com
karma.conf.js
o formato do código do arquivo:A vírgula extra na
files
matriz causou este erro:fonte
Eu não estava executando o comando karma start do caminho onde estava meu karma.conf.js. Mudei para essa pasta e executei o mesmo comando. Isso é tudo
fonte
Eu estava enfrentando esse problema ao executar as especificações na base de código Angular.js. Eu tive que correr
npm install karma-jasmine -g
para fazer isso funcionar.fonte
Se você digitar "karma start", deverá ter um arquivo karma.conf.js na pasta atual. ou apenas "karma start /path/karma.conf.js"
Tente criar um novo karmar.conf.js por "karma init /path/karma.conf.js"
fonte
No meu caso, eu estava aplicando por engano o pré-processador commonjs aos
karma-*
módulos e aoadapter.js
fromkarma-chrome
ekarma-firefox
foi quebrado dessa forma.Infelizmente, este é um erro muito genérico.
fonte
Eu estava recebendo o mesmo erro porque o projeto estava usando Babel 6 e eu tinha esquecido de adicionar o arquivo babelrc. Apenas compartilhando caso isso possa ajudar.
fonte
No meu caso, a mensagem era na verdade muito descritiva: esqueci de adicionar um adaptador, no meu caso Jasmine, ao arquivo de configuração. Portanto:
fonte
Você precisa configurar seu arquivo "my.conf.js", pois ele contém todas as informações para usar para testar seu código.
Tudo o que você precisa escrever é isto:
O arquivo de configuração pode ser gerado usando karma init:
Qual estrutura de teste você deseja usar? Pressione tab para listar as opções possíveis. Entre para ir para a próxima pergunta.
Você deseja usar Require.js? Isso adicionará o plugin Require.js. Pressione tab para listar as opções possíveis. Entre para ir para a próxima pergunta.
Você quer capturar um navegador automaticamente? Pressione tab para listar as opções possíveis. Insira uma string vazia para passar para a próxima pergunta.
Qual é a localização de seus arquivos de origem e de teste? Você pode usar padrões glob, por exemplo. "js / *. js" ou "test / ** / * Spec.js". Pressione Enter para ir para a próxima pergunta.
Algum dos arquivos incluídos pelos padrões anteriores deve ser excluído? Você pode usar padrões glob, por exemplo. "** / *. swp".
Você quer que o Karma observe todos os arquivos e execute os testes de mudança? Pressione tab para listar as opções possíveis.
Arquivo de configuração gerado em "/Users/vojta/Code/karma/my.conf.js".
fonte
Devo acrescentar que, no meu caso, o karma estava me dando o erro porque eu tinha [colchetes] no nome de uma das pastas pai.
fonte
O mesmo problema aconteceu comigo, e foi devido a um módulo desatualizado.
Correr
npm update
resolveu.fonte
Tt está reclamando do adaptador que provavelmente é jasmim ou mocha. O adaptador está ausente ou não está configurado corretamente, ou é uma versão desatualizada ou com erros do adaptador.
No meu caso, eu tinha uma versão antiga do mocha 2.5.3 que não era compatível com o karma 1+. Atualizei a dependência do mocha para a última versão disponível 3.2.0 e o problema foi resolvido.
fonte
Enquanto trabalhava em vários erros vagamente descritos, tentei definir basePath: '../', depois de corrigir outros erros (como vírgulas ausentes que foram descritas como erros de conteúdo do objeto), a última alteração de volta para basePath: '', fez o karma funcionar. as declarações de erro do karma precisam de muito trabalho. Não é simples fazer funcionar.
fonte
Eu tive o mesmo problema. Meu navegador abriria, mas no meu terminal gerou o seguinte erro
Verifiquei meu arquivo karma.conf.js. Na matriz do framework, eu incluí jasmine e requirejs. Mas eu tinha instalado apenas o karma-jasmine. Remover o requireJS e executar novamente o karma começou funcionado!
fonte
Você terá que especificar o diretório de
karma.config.js
quando você executa o start karma.Experimentar
karma start karma.config.js
fonte
Eu tinha uma configuração ruim de 'arquivos' no meu karma.conf.js
isto pegou todos os arquivos em node_modules / incluindo aqueles do plugin karma-jasmine, visto que era visto como arquivos sourde, não foi carregado na inicialização. Mudando para
resolveu o problema no meu caso
fonte
FWIW - buscar o caminho do arquivo
karma.conf.js
funcionou para mim localmente, mas não no meu construtor jenkins. Não tenho ideia de por que esse é o caso, mas em Jenkins ele estava jogando esse erro, a menos que okarma.conf.js
arquivo estivesse no diretório raiz onde o comando karma foi dado. Estou usando rails e executando as especificações js por meio de uma tarefa rake. O código está abaixo, o que pode ser útil para alguns.https://gist.github.com/daino3/a39486ff8bfc1668e923
fonte
O problema no meu caso foi que o carma não coletou nenhum arquivo. Corrigir no karma.conf.js resolveu o problema.
fonte
No meu caso, não foi relacionado ao carma de forma alguma! Eu corro karma do gulp, com ES6 / babel, e houve realmente um erro de sintaxe de código, sinalizado por um erro de babel acima do meu karma:
Eu consertei isso em meu src e carma estava feliz novamente.
fonte
Eu tenho lutado com isso também. O que descobri é que esse erro ocorre devido a um dos seguintes motivos
karma.conf.js
diretório atual ou nenhum arquivo de configuração especificado no comando)Meu problema era que meu arquivo de configuração foi nomeado em
karma.config.js
vez dekarma.conf.js
.Se você instalou o adaptador de teste, mas ele ainda não funciona, tente executar
karma init
e passar pela configuração guiada.fonte
No meu caso, o nome do arquivo de configuração era diferente . Portanto, executar o comando especificando o arquivo conf resolveu meu problema.
E para 'PhantomJS', abrir o link especificado ( localhost: 9876 ) no navegador executa os casos de teste.
Espero que ajude. :)
EDIT 1: Arquivo de configuração do My Karma
fonte
Recebi este erro porque solicitei a mesma dependência duas vezes!
Remover a dependência de arquivo duplicado removeu o erro para mim. Circulado em azul abaixo.
fonte
Você deve especificar o arquivo de configuração do karma para o karma.
Funciona para mim
fonte