警告[middleware:karma]: 文件类型无效,默认为js。ts

16

当我通过karma运行单元测试时,我得到了这些警告:

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,

    });
};

我使用 webpack 4.16.5 和 karma 4.0.0


你误解了这条信息。它转换成了 js(或者说“默认为 js”),因为它是一个 .ts 文件。不过我同意,信息中的 ts 可能会让人产生误解。 - Seblor
谢谢@Seblor,但是这个消息发生在我将它切换到.ts文件之前。因此,我将其切换到.ts文件以避免该消息。但是它没有起作用。 - Nguyen Phong Thien
你能给我们提供你所拥有的文件结构和使用的工具吗?也许Karma使用的其他文件是.ts文件。 - Seblor
1
谢谢@Seblor。这很有趣,我发现在karma.js中,不支持.ts文件,因为const FILE_TYPES = [ 'css', 'html', 'js', 'dart', 'module', 'dom' ]。现在我需要知道如何解决这个问题(我不想手动修改那个文件:D)。 - Nguyen Phong Thien
Karma中有一个修复程序,可以更好地显示错误。在实际调试方面有什么进展吗? - Peter Poliwoda
2个回答

2

我遇到了同样的错误信息,我相信我的情况类似,但是是由于.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吗?),但您可以尝试将type设置为js


-4

你说得没错,karma.conf.js文件类型引起了问题,但我认为原因是:

files: [ 'sdk/**/*.spec.ts' ], 我认为你应该将'sdk/**/*.spec.ts'改为'sdk/**/*.spec.js' 希望这能帮到你。


2
不,那不是我想做的。问题是它需要支持.ts,而不仅仅是.js。 - Nguyen Phong Thien
这个问题有什么更新吗?我也遇到了同样的问题... - stefan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接