打字稿单元测试与Karma和Mocha

时间:2017-08-07 13:51:08

标签: javascript angularjs unit-testing typescript karma-mocha

我正在尝试使用我的代码实现单元测试 Karma + karma-typescript + mocha。

以下代码基于此example。 唯一的区别是我使用mocha而不是jasmine和amd而不是commonjs。

目录结构

.
|-- src
|   |-- core
|   |   |-- Class1.ts
..
|-- test
|   |-- Test.spec.ts
..
| -- karma.conf.js
| -- tsconfig.json

Karma.conf.js

module.exports = function (config) {
    config.set({
        frameworks: ["mocha", "karma-typescript"],

        files: [
            {pattern: 'src/**/*.ts'},
            {pattern: 'test/**/*.spec.ts'}
        ],

        preprocessors: {
            'src/**/*.ts': ['karma-typescript']
        },

        karmaTypescriptConfig: {
            tsconfig: "./tsconfig.json"
        },

        customLaunchers: {
            ChromeNoSandbox: {
                base: 'Chrome',
                flags: ['--no-sandbox']
            }
        },

        reporters: ['karma-typescript'],

        logLevel: config.LOG_DEBUG,

        browsers: ["ChromeNoSandbox"],

        singleRun: true
    })
};

tsconfig.json

{
    "compilerOptions": {
        "target": "es5",
        "module": "amd",
        "lib": [ "es2015", "dom" ],
        "sourceMap": true,
        "removeComments": true,
        "alwaysStrict": true,
        "noImplicitAny": true
    },
    "exclude": [
        "build",
        "node_modules",
        "dist"
    ]
}

这是一个非常简单的测试

describe("Test", () => {
    it("Should do some cool stuff", () => {
       console.log('Cool stuff');
    })
});

执行业力导致此警告:

"Warning: Possible EventEmitter memory leak detected. 11 close listeners added. Use emitter.setMaxListeners() to increase limit"

我认为使用amd而不是commonjs可能会导致问题,但我不知道为什么。

0 个答案:

没有答案