오류 : __karma __. start 메소드를 구현하는 일부 어댑터를 포함해야합니다.


91

내 프로젝트 중 하나에 단위 테스트를 추가하려고합니다.

지금까지 카르마를 설치 및 구성하고 재스민을 설치했습니다. 내 test/폴더에 테스트 파일이 하나 있습니다.

Karma 서버가 시작되고 브라우저 페이지가 준비되었지만 karma run다음과 같이 실패합니다.

$ 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!

이 오류 메시지는 Google에 적합하지 않습니다.

이것이 명백한 것입니까, 아니면 추가 정보를 제공해야합니까?


2
처음에는 알지 못했던 전 처리기 구문 오류로 인해이 오류가 발생했음을 알고 싶었습니다.
BradGreens 2015 년

답변:


73

이것은 매우 일반적인 오류 인 것처럼 보이지만 제 경우 문제는 karma start올바른 폴더에서 실행하지 않았 거나 구성을 변경 한 후 다시 시작하지 않은 것입니다.

이 질문을 열어 두겠습니다.이 오류 메시지를 경험하는 다른 사람들을위한 리소스가되기를 바랍니다.


26
나에게도 똑같이-달리기 karma start test/karma.conf.js가 나를 위해 트릭을했습니다. 올바른 디렉토리는 귀하에게 다를 수 있습니다.
제이슨

3
전처리기를 추가 할 때이 오류가 발생했습니다. { 'src / ** / *. js': [ 'babel']}, 아이디어가 있습니까?
SuperUberDuper

5
나를 위해이 오류 test/**/*.{js,jsx}test/**/*.+(js|jsx)수정했습니다. 얼마나 기괴한가!
juniper-

1
카르마 설정하는 것은 오타가있는 경우 또한 같은 오류가 나타날 수 있습니다
sergolius

28

karma 구성 파일의 이름을 지정하는 경우 karma.conf.js간단히 입력 할 수 있습니다 karma start.

그렇지 않으면 파일 이름을 지정하십시오. karma start karmafile.js

(올바른 디렉토리에 있었지만 파일 이름을 지정하지 않았습니다.)


13

karma runkarma-conf.js가있는 폴더에서 사용자 또는 다른 기능 을 실행해야합니다 .


이것은 옳지 않은 것 같습니다. 내가 karma start있는 src하위 폴더에서 실행 karma.conf.js하면 오류가 발생합니다[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.
BaltoStar


6

karma.conf.js파일 코드 형식에 문제가 있습니다.

files: [
    // Modules
    ,"client/bower_components/angular/angular.min.js"
    ,"client/bower_components/angular-mocks/angular-mocks.js"
    // App
    ,"client/app/app.module.js"
    // Test
    // ,"test/**/*.spec.js"
],

files배열 의 추가 쉼표로 인해 다음 오류가 발생합니다.

You need to include some adapter that implements __karma__.start method!

6

내 karma.conf.js가있는 경로에서 karma start 명령을 실행하지 않았습니다 . 해당 폴더로 전환하고 동일한 명령을 실행했습니다. 그게 다야


4

Angular.js 코드베이스에서 사양을 실행하는 동안이 문제에 직면했습니다. 나는 npm install karma-jasmine -g이것을 작동시키기 위해 달려야 했다.


3

"karma start"를 입력하는 경우 현재 폴더에 karma.conf.js 파일이 있어야합니다. 또는 "karma start /path/karma.conf.js"

"karma init /path/karma.conf.js"로 새 karmar.conf.js를 생성 해보십시오.


2

제 경우에는 실수로 commonjs 전처리기를 karma-*모듈과 adapter.jsfrom에 적용 karma-chrome하고 karma-firefox이런 식으로 깨졌습니다.

불행히도 이것은 매우 일반적인 오류입니다.


수정 한 내용에 대해 더 많은 배경 정보를 제공 할 수 있습니까? 내가 karma-chrome을 사용하고 있다는 것을 알기 때문에 지금 당장 얻을 수 있습니다. 감사!
daniel.caspers

commonjs 전처리기를 적용합니까 (카르마 실행기에 구성되어 있습니까)? 그렇다면 karma- * 모듈의 파일에 적용되지 않았는지 확인하십시오.
Adrian Ber 2011

2

프로젝트에서 Babel 6을 사용 중이고 babelrc 파일을 추가하는 것을 잊었 기 때문에 동일한 오류가 발생했습니다. 이것이 도움이 될 경우를 대비하여 공유하십시오.


2

필자의 경우 메시지는 사실 매우 설명 적이었습니다. 어댑터 (제 경우 Jasmine)를 구성 파일에 추가하는 것을 잊었습니다. 그러므로:

module.exports = function(config) {
  config.set({
      browsers: ['Chrome'],
      singleRun: true,
      frameworks: ['jasmine'],
      files: [
          // ... files ...
      ],
      // other configs
    });
};

2

"my.conf.js"파일에는 코드를 테스트하는 데 사용할 모든 정보가 포함되어 있으므로 구성해야합니다.

작성해야 할 모든 것은 다음과 같습니다.

구성 파일은 karma init를 사용하여 생성 할 수 있습니다.

$ karma init my.conf.js

어떤 테스트 프레임 워크를 사용 하시겠습니까? 가능한 옵션을 나열하려면 탭을 누르십시오. 다음 질문으로 이동하려면 입력하세요.

재스민 속

Require.js를 사용 하시겠습니까? Require.js 플러그인이 추가됩니다. 가능한 옵션을 나열하려면 탭을 누르십시오. 다음 질문으로 이동하려면 입력하세요.

아니

브라우저를 자동으로 캡처 하시겠습니까? 가능한 옵션을 나열하려면 탭을 누르십시오. 다음 질문으로 이동하려면 빈 문자열을 입력하세요.

크롬

소스 및 테스트 파일의 위치는 어디입니까? 예를 들어 glob 패턴을 사용할 수 있습니다. "js / *. js"또는 "test / ** / * Spec.js". 다음 질문으로 이동하려면 Enter를 누르십시오.

* .js test / ** / *. js

이전 패턴에 포함 된 파일을 제외해야합니까? 예를 들어 glob 패턴을 사용할 수 있습니다. "** / *. swp".

다음 질문으로 이동하려면 Enter를 누르십시오.

Karma가 모든 파일을 감시하고 변경시 테스트를 실행하기를 원하십니까? 가능한 옵션을 나열하려면 탭을 누르십시오.

"/Users/vojta/Code/karma/my.conf.js"에 생성 된 구성 파일.


1

내 경우에는 부모 폴더 중 하나의 이름에 [대괄호] 대괄호가 있었기 때문에 karma가 오류를 발생 시켰음을 추가해야합니다.


1

나에게도 같은 문제가 발생했으며 오래된 모듈 때문이었습니다.

달리기 npm update가 그것을 해결했습니다.


1

자스민 또는 모카 인 어댑터에 대해 불평하고 있습니다. 어댑터가 없거나 올바르게 설정되지 않았거나 어댑터의 오래된 버전이거나 버그가있는 버전입니다.

제 경우에는 karma 1+와 호환되지 않는 이전 버전의 mocha 2.5.3이있었습니다. 모카 종속성을 사용 가능한 최신 버전 3.2.0으로 업데이트하고 문제가 해결되었습니다.


1

모호하게 설명 된 수많은 오류를 처리하는 동안 basePath : '../'설정을 시도했습니다. 다른 오류 (객체 콘텐츠 오류로 설명 된 누락 된 쉼표 등)를 수정 한 후 마지막 변경 사항을 basePath : ''로 되돌려 카르마가 작동하도록했습니다. 카르마의 오류 진술에는 많은 작업이 필요합니다. 그것을 진행하는 것은 간단하지 않습니다.


1

나는 같은 문제가 있었다. 내 브라우저가 열리지 만 터미널에서 다음 오류가 발생했습니다.

30 08 2017 11:19:28.272:INFO [Chrome 58.0.3029 (Linux 0.0.0)]: Connected `enter code here`on socket 5sSs6E5KmpUVRp6LAAAB with id 93886631
Chrome 58.0.3029 (Linux 0.0.0) ERRORSome of your tests did a full page reload!

내 karma.conf.js 파일을 확인했습니다. 프레임 워크 배열에는 jasmine과 requirejs가 포함되어 있습니다. 그러나 나는 karma-jasmine 만 설치했습니다. requireJS를 제거하고 karma start를 다시 실행하면 효과가 있습니다!



1

karma.conf.js에 잘못된 '파일'구성이 있습니다.

files: ['**/*.js'],

이것은 karma-jasmine 플러그인을 포함하여 node_modules /의 모든 파일을 포착했습니다. 시작시로드되지 않은 sourde 파일로 보였기 때문입니다. 다음으로 변경

files: [
        'src/*.js',
        'spec/*.js'
    ],

제 경우에 문제를 해결했습니다.


0

karma.conf.jsFWIW- 파일 경로를 로컬에서 소싱 했지만 Jenkins 빌더에서는 작동하지 않았습니다. 왜 이것이 사실인지 전혀 알 수 없지만 젠킨스에서는 karma.conf.js파일이 karma 명령이 주어진 루트 디렉토리에 있지 않는 한이 오류가 발생했습니다 . 레일을 사용하고 레이크 작업을 통해 js 사양을 실행하고 있습니다. 아래 코드는 일부에게 도움이 될 수 있습니다.

https://gist.github.com/daino3/a39486ff8bfc1668e923


0

제 경우의 문제는 카르마가 어떤 파일도 선택하지 않았다는 것입니다. karma.conf.js에서 수정하면 문제가 해결되었습니다.


0

제 경우에는 업장과 전혀 관련이 없었습니다! ES6 / babel을 사용하여 gulp에서 karma를 실행했는데 실제로는 karma 위의 babel 오류로 표시된 코드 구문 오류가 있습니다.

오류 [preprocessor.babel] : xxx.js : 예기치 않은 토큰 (19:83)

나는 src와 karma가 다시 행복하다는 것을 고쳤습니다.


0

나도 이것으로 고군분투하고 있습니다. 내가 생각 해낸 것은 다음 이유 중 하나 때문에이 오류가 발생한다는 것입니다.

내 문제는 내 설정 파일의 이름이었다이었다 karma.config.js대신 karma.conf.js.

테스트 어댑터를 설치 했지만 여전히 작동하지 않는 경우 실행을 시도 karma init하고 안내 식 구성 설정을 수행하십시오.


0

제 경우에는 구성 파일 이름이 달랐습니다 . 그래서 conf 파일을 지정하는 명령을 실행하면 내 문제가 해결되었습니다.

>> karma start unit-tests.conf.js
No captured browser, open http://localhost:9876/
...

그리고 'PhantomJS'의 경우 브라우저에서 지정된 링크 ( localhost : 9876 )를 열면 테스트 케이스가 실행됩니다.

도움이 되었기를 바랍니다. :)

편집 1 : 내 Karma 구성 파일

module.exports = function(config) {
  config.set({

    // base path that will be used to resolve all patterns (eg. files, exclude)
    basePath: '',


    // frameworks to use
    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
    frameworks: ['jasmine'],


    // list of files / patterns to load in the browser
    files: [
      './node_modules/angular/angular.js',
      './node_modules/angular-ui-router/release/angular-ui-router.js',
      './node_modules/angular-mocks/angular-mocks.js',
      './app/services/users/users.js',
      './app/app.js',
      './app/services/users/users.spec.js'
    ],


    // list of files to exclude
    exclude: [
    ],


    // preprocess matching files before serving them to the browser
    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
    preprocessors: {
    },


    // test results reporter to use
    // possible values: 'dots', 'progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['spec'],


    // web server port
    port: 9876,


    // enable / disable colors in the output (reporters and logs)
    colors: true,


    // level of logging
    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
    logLevel: config.LOG_INFO,


    // enable / disable watching file and executing tests whenever any file changes
    autoWatch: true,


    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: ['Chrome'],


    // Continuous Integration mode
    // if true, Karma captures browsers, runs the tests and exits
    singleRun: false,

    // Concurrency level
    // how many browser should be started simultaneous
    concurrency: Infinity
  })
}

0

동일한 종속성이 두 번 필요했기 때문에이 오류가 발생했습니다!

중복 파일 종속성을 제거하면 오류가 제거되었습니다. 아래 파란색 동그라미.

여기에 이미지 설명 입력


0

karma에 karma 구성 파일 을 지정해야합니다 .

karma start karma.config.js 

그것은 나를 위해 작동합니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.