javascript - webpack build 后 karma 没有找到任何 spec 文件

标签 javascript angularjs jasmine karma-runner

我正在使用下面的 karma.config.js 来测试 angular 5 应用程序:
输出显示 spec 文件正在由 webpack 构建。 但是他们没有被处决。

执行了 0 次错误(0.014 秒/0 秒)

Built at: 2018-4-6 11:41:27
                                                Asset      Size                                                 Chunks             Chunk Names
wwwroot/ts/app/modules/party/ContactComponent.spec.ts  2.36 MiB  wwwroot/ts/app/modules/party/ContactComponent.spec.ts  [emitted]  wwwroot/ts/app/modules/party/ContactComponent.spec.ts
                            wwwroot/ts/sanity.spec.ts   841 KiB                              wwwroot/ts/sanity.spec.ts  [emitted]  wwwroot/ts/sanity.spec.ts
Entrypoint wwwroot/ts/app/modules/party/ContactComponent.spec.ts = wwwroot/ts/app/modules/party/ContactComponent.spec.ts
Entrypoint wwwroot/ts/sanity.spec.ts = wwwroot/ts/sanity.spec.ts
[./node_modules/@angular/core/esm5/core.js] 613 KiB {wwwroot/ts/sanity.spec.ts} {wwwroot/ts/app/modules/party/ContactComponent.spec.ts} [built] [2 warnings]
[./node_modules/@angular/core/esm5/testing.js] 48.6 KiB {wwwroot/ts/sanity.spec.ts} {wwwroot/ts/app/modules/party/ContactComponent.spec.ts}

所以似乎正在构建所有(2 个)规范文件,但它们似乎没有加载到 karma 中。

06 04 2018 11:41:28.195:INFO [launcher]: Starting browser Chrome
06 04 2018 11:41:31.277:INFO [Chrome 65.0.3325 (Windows 10.0.0)]: Connected on socket hJfXueGxaOTtJn4SAAAA with id 21418556    
Chrome 65.0.3325 (Windows 10.0.0): Executed 0 of 0 ERROR (0.014 secs / 0 secs)

引用我的karma.config.js如下。

module.exports = function (config) {
    config.set({
        basePath: "",
        frameworks: ["jasmine"],
        plugins: [
            require("karma-jasmine"),
            require("karma-chrome-launcher"),
            require("karma-jasmine-html-reporter"),
            require("karma-spec-reporter"),
            require("karma-webpack")
        ],
        files: [
    "./base.spec.ts",
    "./wwwroot/**/*.spec.*"
        ],
        webpack: {
            mode: "development",
            module: {
                rules: [
                    {
                        test: /\.ts$/,
                        use: ["ts-loader"],
                        exclude: /(node_modules)/
                    },
                    {
                        test: require.resolve("jquery"),
                        use: [
                           { loader: "expose-loader", options: "jQuery" },
                           { loader: "expose-loader", options: "$" }
                        ]
                    }
                ]
            },
            resolve:
                {
                    extensions: [".ts", ".js", ".json"],
                    alias: {
                        typeahead: "typeahead.js"
                    }
                },
        },
        preprocessors: {
            "./base.spec.ts": ["webpack"],
            "./wwwroot/**/*.spec.*": ["webpack"]
        },
        reporters: ["kjhtml", "spec"],
        port: 9876,
        colors: true,
        autoWatch: true,
        browsers: ["Chrome"],
        singleRun: false
    });
};

最佳答案

在您的 karma 配置中设置 mime 类型将使您的测试运行。

mime: {
  "text/x-typescript": ["ts"]
},

关于javascript - webpack build 后 karma 没有找到任何 spec 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49689945/

相关文章:

angularjs - WebStorm 修改 URL-s

javascript - 在 angular-ui-bootstrap 轮播上设置事件幻灯片

javascript - 如何用 Jasmine 模拟 JQuery?

angular - 错误 : StaticInjectorError(DynamicTestModule)[CityService -> Http]: No provider for Http

javascript - 如何测试 Javascript 是否提交了表单?

javascript - fadeIn() 不适用于一组 div

javascript - 如何检查所有对象键是否都有假值

javascript - jQuery:获取任何给定字符的按键(不是按键)值

javascript - XMLHttpRequest/AJAX 请求在 twig for 循环中发送

javascript - 如何使用 AngularJS 更改和操作单元格 ng-grid 中的数据?