React / Karma / WebPack没有运行测试

时间:2017-04-24 10:45:51

标签: reactjs webpack jasmine karma-jasmine

我的文件夹结构是(我安装了所有正确的npm包)

<TextBox Text="{Binding YourViewModelProperty}" />

我启动我的Krama karma.conf.js 文件,npm test

TextBox

tests.webpack.js

private string _s;
public string YourViewModelProperty
{
    get { return _s; }
    set { _s = value; Validate(); }
}

karma.conf.js tests.webpack.js 正在运行。 我的spec文件 reactComponent.spec.js 只是一个简单的入门测试

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

但是在命令窗口(Windows 10)中我得到了

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);

我得到了

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

所以看来我正在运行测试跑步者。 我的文件夹RegExp是否正确?

我尝试做的是在app的根文件夹下的任何文件夹中运行任何.spec.js文件。

如果在我的 karma.conf.js 文件中,我设置了

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

> poc@0.0.0 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.

我得到更多信息

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

2 个答案:

答案 0 :(得分:1)

这是因为Karma无法找到您的测试;

这可能有不同的原因,首先检查karma.conf.js中的路径 测试文件中可能存在一些缺失或错位的规格,因此业力将无法执行。如果没有测试导致成功测试的数量为0,则将其读作错误。你可以尝试添加一个虚拟规格,如果它工作。

答案 1 :(得分:1)

啊,我的RegExp中的一个愚蠢的错字

tests.webpack.js 删除*以便它读取

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