【问题标题】:JS : karma rollup empty bundleJS:业力汇总空包
【发布时间】:2017-08-15 22:28:02
【问题描述】:

[更新]

这篇文章的原标题是:“坏业力,丢失数据”,代表大脑文字游戏,更多的是为了韵律而不是真实的事实。因此,为了正确和礼貌,我决定对其进行更改。

[更新]

您好,我有一个非常经典的程序目录结构:

dist/
karam.conf.js
node_modules/
package.json
rollup.config.js
src/
    fp/
        list.js     # imports maybe.js
        matbe.js
test/
    fp/
        list.specs.js
        maybe.specs.js

我正在尝试使用汇总对测试进行预处理。我的 karma.conf.js 就像:

# karma.conf.js
const buble = require('@rollup/plugin-buble')
const resolve = require('@rollup/plugin-node-resolve').default

// console.log({ resolve })

module.exports = function(config) {
    config.set({
        basePath : '',

        files: [
            { 
                pattern: 'src/fp/*.js', watched: true 
            },{ 
                pattern: 'test/fp/*.specs.js', watched: true
            }
        ],

        watch: true,

        preprocessors: {
            'src/fp/*.js': ['rollup2'],
            'test/fp/*.specs.js': ['rollup2']
        },

        rollup2Preprocessor: {
            output: {
                name: 'fptest',
                format: 'iife'
            },
            plugins: [
                buble(),
                resolve()
            ]
        }
   });
}

当我使用 npm 或从 CLI 使用“karma start --log-level debug”启动 karma 时,我得到 4 个空包并收到错误消息“文件加载或预处理期间出错 类型错误:输出不可迭代”。

所以我无法正确测试我的程序。

发生了什么以及如何解决?

感谢您的回复,问候。

【问题讨论】:

标签: javascript testing karma-runner rollupjs


【解决方案1】:

查看您的模块加载器,我建议在运行测试之前使用像 karma-rollup-preprocessor 这样的 karma 插件来捆绑您的模块。这将正确地捆绑和连接您的模块以进行测试。

而且您不需要在 files 数组下指定所有文件。

files: [
    'test/**/*.js'
],

【讨论】:

    猜你喜欢
    • 2017-01-07
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 2015-08-01
    • 2019-02-08
    • 1970-01-01
    • 2014-01-21
    相关资源
    最近更新 更多