我正在尝试使用 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/