首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >webpack如何整合业力

webpack如何整合业力
EN

Stack Overflow用户
提问于 2016-01-08 15:09:20
回答 3查看 5.2K关注 0票数 8

我是webpack的新手,有一个关于考试的问题。

我有一个项目,使用webpack,类型记录和业力作为测试跑步者,我想运行我的测试对每一个文件更改(例如,在“观察”模式)。

我知道业力-webpack,当我把业力作为自己的过程运行时,它工作得很好(业力开始.)

但我想要的是在webpack流中整合业力。所以,从我天真的角度来看,我认为在预压webpack (如林特)时,必须定义业力。

但我什么也没找到..。我无法相信这个通用工作流是不可能的(对每个源更改运行测试)。

你们谁能给我个建议吗?

EN

回答 3

Stack Overflow用户

发布于 2018-06-20 14:18:55

时光飞逝,已经是2018年6月了。由于网上没有太多关于这方面的文档,我想给出我的2分钱。

我目前有一个设置工作,我把我的测试与webpack,手表的变化,以重新运行自动测试。

我使用的是卡玛-webpack,使用替代用法部分中解释的配置,我认为这是解决问题中提出的问题的正确方法。

karma.conf.js

代码语言:javascript
复制
{
  ...
  files: [
    // only specify one entry point
    // and require all tests in there
    'test/index_test.js'
  ],
  preprocessors: {
    // add webpack as preprocessor
    'test/index_test.js': [ 'webpack' ]
  },
  ...
}

test/index_test.js

代码语言:javascript
复制
// require all modules ending in "_test" from the
// current directory and all subdirectories
const testsContext = require.context(".", true, /_test$/)

testsContext.keys().forEach(testsContext)

正如@Adi Prasetyo建议的那样,观察整个包裹的变化在我看来是错误的。我们只应注意测试文件和在其中导入的文件中的更改,这可以通过上一个URL中显示的配置来实现。

对于热重新加载工作非常重要(至少在我的例子中是它使其工作的原因),您需要设置webpack-dev中间件配置,以便每次在某个测试文件中发生更改或在其中导入的文件发生更改时更新测试包。这是我使用的配置:

karma.config.js

代码语言:javascript
复制
{
  ...
  webpackMiddleware: {
    watchOptions: {
      aggregateTimeout: 300,
      poll: 1000, // customize depending on PC power
    },
  },
  ...
}

关于它的更多信息,这里

票数 5
EN

Stack Overflow用户

发布于 2017-04-19 12:42:25

与我使用的TDD工作流一样,我也有同样的问题。在编写测试之后,更改代码,测试就不会重新运行。可以对每个文件更改进行测试。

因为业力档案有三种选择:包括,服务,观看。

您可以将包指定为模式,然后告诉业力观看它。

karma.config.js

代码语言:javascript
复制
files: [
  // watch final file so when source change and it's final file, re run the test
  { pattern: './dist/js/*.wp.js', watched: true},
],

但是当我们使用karma start时,没有webpack在活动和观看。所以使用来运行业力和webpack。请注意webpack应该只看源代码,业力应该看捆绑文件。然后,我们可以向package.json添加脚本属性,如下所示

package.json

代码语言:javascript
复制
"scripts": {
  "test": "karma start karma.config.js",
  "build": "webpack",
  "dev": "concurrently \"webpack --progress --colors --watch\" \"karma start karma.config.js --colors\"",
 },

然后运行npm run dev开始编码

票数 4
EN

Stack Overflow用户

发布于 2016-01-08 19:26:50

嗯,到目前为止我还没听说过webpack,但我对业力相当了解。我不能百分之百确定你在这里问什么,所以告诉我,如果这一点都没有帮助的话。你可以设置业力来做你想做的事情(对每一个文件改变运行测试)。

必须在karma.conf.js文件中设置两个选项:autoWatch: truesingleRun: false

karma.conf.js

代码语言:javascript
复制
module.exports = function(config) {
    config.set({
        // set other options and stuff...
        autoWatch:  true,
        singleRun: false
    });
};

设置为true的autoWatch允许在任何文件更改时监视文件和执行测试。将singleRun设置为false意味着您只需要执行karma start (或将其集成到webpack中)一次就可以运行测试,而不必每次更改或希望运行套件时都输入命令;它只会让业力在后台运行。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34680143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档