首页 > 解决方案 > WARN [middleware:karma]: 文件类型无效,默认为 js。ts

问题描述

当我通过业力运行单元测试时,我收到了这些警告:

12 02 2019 14:01:05.740:WARN [middleware:karma]: Invalid file type, defaulting to js. ts
12 02 2019 14:01:05.741:WARN [middleware:karma]: Invalid file type, defaulting to js. ts

我认为karma.conf.js文件的类型导致了问题,所以我将其更改为karma.conf.ts.

但是问题仍然存在,所以如果有人能告诉我如何禁用此警告,那就太好了。

下面是我的 karma.conf.ts 文件

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

        singleRun: true,

        frameworks: [
            'jasmine'
        ],

        files: [
            'sdk/**/*.spec.ts'
        ],

        preprocessors: {
            'sdk/**/*.spec.ts': ['webpack', 'sourcemap'],
            'sdk/**/!(*.spec).ts': ['coverage']
        },

        browsers: [
            'PhantomJS'
        ],

        reporters: [
            'progress',
            'coverage',
            'junit'
        ],

        coverageReporter: {
            dir: 'coverage/',
            reporters: [
                { type: 'text-summary' },
                { type: 'html' },
                {
                    type: 'lcov',
                    dir: 'reports',
                    subdir: 'coverage'
                }
            ]
        },

        junitReporter: {
            outputFile: 'reports/junit/TEST-karma.xml',
            useBrowserName: false
        },

        transports: ['polling'],

        webpack: require('./webpack.config'),

        webpackMiddleware: {
            stats: 'errors-only'
        },

        logLevel: config.LOG_INFO,

    });
};

我使用 webpack4.16.5和 karma4.0.0

标签: typescriptwebpackkarma-jasminekarma-runner

解决方案


我遇到了同样的错误消息,我相信类似的问题,但在我的情况下,.ttf 字体文件导致:

19 11 2019 22:12:35.398:WARN [middleware:karma]: Invalid file type (ttf), defaulting to js.

http://karma-runner.github.io/4.0/config/files.html

css 和 html 类型创建链接元素;js、dart 和 module 元素创建脚本元素。dom 类型包括页面中的文件内容,例如用于测试结合 HTML 和 JS 的组件。

所以我相信如果你想添加一个不同文件类型的资源作为链接,它应该在文件配置中输入 HTML。以下对我有用:

{
    pattern: 'resources/fonts/**/*.ttf',
    type: 'html',
    served: true,
    included: true
},

不确定 .ts 文件应如何包含在 HTML 页面中(因为它们不应该被转译为 JS 吗?)但您可以尝试将 .ts 文件设置typejs.


推荐阅读