javascript - 尝试运行 Mocha 测试时 require.context 不是函数

标签 javascript reactjs webpack mocha.js vue.js

我正在尝试使用 Mocha.js + JSDOM 框架运行测试,但我无法启动 Mocha向上。这是在使用 Vue.js 库测试 React 应用程序的过程中。我不断收到以下错误:

var req = require.context('./', false, /\.vue$/);
TypeError: require.context is not a function

有问题的代码是:

let req = require.context('./', false, /\.vue$/);
components.forEach(function (component) {
    try {
        let filePath = './' + component + '.vue';
        let injected = inject(req(filePath));
        Vue.component(getComponentName(component), injected);

        let appComponent = {
            name: injected.name,
            props: {
                autocompletion: {
                    metadata: getComponentName('template'),
                    score: xTemplatesScore,
                    attributes: injected.props || []
                }
            }
        };

        appComponents.push(appComponent);

    } catch (err) {
        console.log(err);
        console.error('Vue file was not found for component:' + component + '. Please rename your files accordingly ( component-name.vue )');
    }

有没有办法解决这个问题并让 Mocha 真正启动?或者是否有合适的 require.context 替代品?我试图用纯字符串连接和 Vanilla require 重做它,但这一直告诉我找不到任何 Vue 模块。

最佳答案

require.context 是webpack的一个方法。您的测试必须先打包才能运行。

通常,您会为测试创建一个单独的 webpack 配置文件。然后,您将使用 webpack 创建一个测试包,然后在此包上运行 Mocha。或者,您可以在 webpack 测试配置文件中使用 mocha-loader 并让测试作为捆绑过程的一部分运行。

更多信息可以在 webpack documentation on testing 中找到.

关于javascript - 尝试运行 Mocha 测试时 require.context 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41832367/

相关文章:

javascript - Highcharts 气泡图 - 带有错误栏的自定义工具提示(水平或垂直)

c# - 调用 Label.Text(在 C# 中)与 Label.innerHTML 导致意外结果

css - 全局安装时无法在 React-app 中包含 Bootstrap

javascript - 有没有办法在全局级别上从 webpack 中排除 node_modules ?

reactjs - 将 React 构建输出合并到单个 js 文件中

javascript - 提高 RoR 项目的时间响应

javascript - 通过 jquery ajax() 和 serialize() 提交 html 表单

javascript - 为什么 React 在渲染之前需要检查节点是否为根节点?

javascript - 为什么 shuffle 在 React 中不起作用?

javascript - 使用 Nuxt 生成的自定义 404 页面仅在开发模式下工作