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

raf*_*010 5 javascript mocha.js reactjs webpack vue.js

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

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

有问题的代码是:

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 )');
    }
Run Code Online (Sandbox Code Playgroud)

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

Ste*_*nev 5

require.context是webpack的一种方法。您的测试必须在运行之前进行捆绑。

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

更多信息可以在webpack 文档 testing 中找到