将 index.html 中的引用自动复制到 karma.conf.js

Posted

技术标签:

【中文标题】将 index.html 中的引用自动复制到 karma.conf.js【英文标题】:Copying references from index.html into karma.conf.js automatically 【发布时间】:2014-10-14 22:47:34 【问题描述】:

我正在尝试为我的测试生成一个 karma.conf.js。

我的应用程序中已经有大约 30 个标签引用了我的代码。我正在以模块化结构编写我的 AngularJS 代码,推荐使用 here。

我想知道如何不将所有引用再次写入 karma.conf.js.. 有人知道解决方案吗?

我查看了https://preview.npmjs.com/package/karma-loadscripts-preprocessor,但它没有完成这项工作。似乎是为了从 cdn-sources 加载外部脚本。

在编写自己的 shell 脚本为我完成这项工作之前,我有点卡住了。

【问题讨论】:

【参考方案1】:

根据我的经验,这在 Angular 项目中并不是一个大问题。包含的文件不会经常更改,并且可以手动管理。有时也会碰巧在 Karma 文件中包含不同的包含,因为您可能想要模拟某些模块。

如果你真的致力于在这方面干,并且你正在使用 Yeoman 中的角度生成器,一个解决方案可能是在 Karma 中包含你的应用程序的构建版本

【讨论】:

【参考方案2】:

在您的 karma.conf.js 文件中,您可以引用目录或子目录中的多个文件。对于 karma.conf 中的 files 属性,您可以执行以下类似操作。

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

第一个节目将在 js 文件夹中获取所有内容。但是,第二个将为您提供 www/ 文件夹和包括 js/ 文件夹在内的子文件夹中的所有 javascript 文件。

希望这会有所帮助。

【讨论】:

这种方法的问题是您必须在每个使用或扩展该角度模块的文件之前加载模块定义。你只能手动处理!【参考方案3】:

我遇到了和你一样的挑战。我不想手动将我在应用程序中使用的每个脚本都包含到 karma 配置中,但我确实想测试未捆绑的 javascripts。

我自己创建了一个 karma 预处理器来包含来自 html 文件的所有本地脚本。它适用于我自己的项目,我希望它也适用于你的项目。

https://www.npmjs.com/package/karma-preprocessor-includelocalscripts

看看它并随时发表评论。

【讨论】:

以上是关于将 index.html 中的引用自动复制到 karma.conf.js的主要内容,如果未能解决你的问题,请参考以下文章

Webpack.config 如何将 index.html 复制到 dist 文件夹

React JS index.js 文件如何联系 index.html 以获取 id 引用? [复制]

如何使 MSBuild 自动将所有间接引用复制到输出(bin)文件夹

无法从distpack文件夹中的webpack生成的index.html引用javascript和css文件

使用按键精灵,如何将excel表格中的内容复制到报名软件的框中

不将引用类型复制到 C# 中的每个线程是不是存在性能劣势? [关闭]