Javascript 在karma预处理器中将文件添加到观察列表 以下是为演示该问题而创建的存储库:

Javascript 在karma预处理器中将文件添加到观察列表 以下是为演示该问题而创建的存储库:,javascript,unit-testing,karma-runner,rollupjs,Javascript,Unit Testing,Karma Runner,Rollupjs,我正试图让karma汇总预处理器与karma的内置手表一起工作,即解决 换句话说,在预处理器中,我想将文件添加到Karma的观察列表中 很容易获得汇总用于编译的文件列表。Rollup返回一个它读取的文件列表(人们想要查看的文件),因此在预处理器中,我尝试将文件添加到karma watches列表中 基本上,我想将这个(或等效的)添加到预处理器中: bundle.modules.forEach((module) => { files.unshift({ pattern

我正试图让karma汇总预处理器与karma的内置手表一起工作,即解决

换句话说,在预处理器中,我想将文件添加到Karma的观察列表中

很容易获得汇总用于编译的文件列表。Rollup返回一个它读取的文件列表(人们想要查看的文件),因此在预处理器中,我尝试将文件添加到karma watches列表中

基本上,我想将这个(或等效的)添加到预处理器中:

bundle.modules.forEach((module) => {
    files.unshift({
        pattern: module.id,  /* The full file path, from Rollup */
        watched: true,
        included: false,
        nocache: false,
        served: false,
    })
})
其中
文件
是Karma的
配置文件
文件列表
或任何需要放置被监视文件的地方

使用
config.files
执行上述操作时,确实会将文件添加到监视程序中,但操作失败

因此,看起来文件也(或者)必须添加到
文件列表中

不幸的是,当我尝试将
文件列表
添加到时,出现了以下错误:

错误:无法解析循环依赖!(解析:预处理->预处理:汇总->文件列表->预处理)

我基本上看过了所有其他的预处理器,它们看起来也可以添加include,但我没有发现如何添加include的迹象

有没有一种规范的方法来添加Karma应该从预处理器中查看的文件?否则怎么可能做到这一点?这对于Karma中的预处理器来说似乎非常关键,因此令人惊讶的是,它在其他预处理器中没有记录、明显或有问题

编辑还有一些尝试:

我试图将关注的模式添加到
karma.conf
中的
config.files
,即

files: [
   "spec/**/*.js",
   {pattern:"src/**/*.js", included: false, watched: true}
]
但是
src/*
在更改时不会重新编译。测试只是重新运行

所以我试着这样做:

var server = new karma.Server(options)...

chokidar.watch("src/**/*.js")
  .on('add', server.refreshFiles.bind(server))
  .on('change', server.refreshFiles.bind(server))
我还尝试了去盎司,以防Karma在刷新时变慢,但似乎测试不会重新运行

我在《因果报应》杂志上寻找灵感,但它有点太复杂了,如果不深入钻研,就很难找到

在合并之前,可以使用我的回购,即在
package.json
依赖项或依赖项中放置
“karma汇总预处理器”:“brianmhunt/karma汇总预处理器”

编辑:被替换为