2017-04-24 1 views
1
를 실행하지

내 폴더 구조는 (내가 설치된 모든 올바른 NPM 패키지가)반작용/카르마/웹팩 테스트

app 
    | 
    folder1 
    reactComponent.js 
    | 
    testFolder 
     reactComponent.spec.js 

I 시작 내 Krama karma.conf.js으로 파일, NPM 테스트

var webpack = require('webpack'); 

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

    singleRun: true, 

    frameworks: ['jasmine'], 
    browsers: ['PhantomJS'], 

    files: [ 
     'tests.webpack.js' 
    ], 

    preprocessors: { 
     'tests.webpack.js': [ 'webpack', 'sourcemap' ] 
    }, 

    reporters: [ 'dots' ], 

    webpack: { 
     devtool: 'inline-source-map', 
     module: { 
     loaders: [ 
      { test: /\.js$/, loader: 'babel-loader' } 
     ] 
     } 
    }, 

    webpackServer: { 
     noInfo: true 
    } 

    }); 
}; 

tests.webpack.js

var context = require.context('../app', true, /\*.spec.js$/); 
context.keys().forEach(context); 
,

karma.conf.jstests.webpack.js이 실행 중입니다. 내 spec 파일 reactComponent.spec.js는 단순한 선발 시험

describe('Simple test', function() { 
    it('returns 1 + 1 = 2 ', function() { 
     expect(2).toEqual(1 + 1); 
    }); 
}); 

하지만 명령 창 (윈도우 10)에서 나는

D:\development\react\poc9-unittests>npm test 

> [email protected] test D:\development\react\poc9-unittests 
> karma start ./testing/karma.conf.js 

24 04 2017 11:27:30.822:INFO [karma]: Karma v1.6.0 server started at http://0.0.0.0:9876/ 
24 04 2017 11:27:30.825:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency 
24 04 2017 11:27:30.836:INFO [launcher]: Starting browser PhantomJS 
24 04 2017 11:27:33.859:INFO [PhantomJS 2.1.1 (Windows 8 0.0.0)]: Connected on socket YzqWwfSyJoA5P4DbAAAA with id 73371783 
PhantomJS 2.1.1 (Windows 8 0.0.0): Executed 0 of 0 ERROR (0.001 secs/0 secs) 
npm ERR! Test failed. See above for more details. 

더 자세한 거기를 위해 위의 내용은 Get 볼 것도없고 로그 파일도 생성되지 않습니다. tests.webpack.js에서

나는 그래서 내가 테스트 주자를 실행 해요 나타납니다

Module not found: Error: Cannot resolve 'file' or 'directory' ../appNonExistentFolder in D:\devel...... 

을 얻을

var context = require.context('../appNonExistentFolder ', true, /\*.spec.js$/); 

존재하지 폴더를 가리 키도록 폴더를 변경하는 경우 . 내 폴더 RegExp가 맞습니까?

내가하려는 것은 응용 프로그램의 루트 폴더 아래에있는 모든 폴더에서 .spec.js 파일을 실행하는 것입니다. 내 karma.conf.js에 파일 내가

webpackServer: { 
     noInfo: false 
    } 

을 설정하면

나는 좀 더 많은 정보

Hash: f4683f5fa2953dc3a97c 
Version: webpack 1.15.0 
Time: 61ms 
webpack: Compiled successfully. 
webpack: Compiling... 
Hash: 18eef6f855c83434d040 
Version: webpack 1.15.0 
Time: 1086ms 
      Asset  Size Chunks    Chunk Names 
tests.webpack.js 4.88 kB  0 [emitted] tests.webpack.js 
chunk {0} tests.webpack.js (tests.webpack.js) 269 bytes [rendered] 
    [0] ./testing/tests.webpack.js 109 bytes {0} [built] 
    [1] ./app \*.spec.js$ 160 bytes {0} [built] 
webpack: Compiled successfully. 

답변

1

이것은 카르마는 테스트를 찾을 수 없다는의 결과 얻을 ;

다른 이유가있을 수 있습니다. 먼저 경로를 확인하십시오. karma.conf.js 테스트 파일에 사양이 없거나 잘못 배치되어있을 수 있으므로 카르마에는 아무 것도 실행되지 않습니다. 성공 테스트의 횟수가 0이되는 테스트가 없으면 오류로 읽습니다. 작동하는 경우 더미 사양을 추가 할 수 있습니다.

1

아, 그것은

var context = require.context('../app', true, /\.spec.js$/); 
context.keys().forEach(context); 
를 읽도록

tests.webpack.js는 *를 제거 내 정규식에 바보 같은 오타