我正在尝试使用Mocha.js
+ JSDOM
框架运行测试,但我无法启动Mocha
。这是在使用React
库测试Vue.js
应用的过程中。我一直收到以下错误:
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
是否有合适的替代品?我试图用简单的字符串连接和一个香草require
来重做它,但这一直告诉我没有Vue
模块可以找到。
答案 0 :(得分:4)
require.context
是webpack的一种方法。您的测试必须捆绑才能运行。
通常,您需要为测试创建单独的webpack配置文件。然后,您将使用webpack创建测试包,然后在此捆绑包上运行Mocha。或者,您可以在webpack测试配置文件中使用mocha-loader
,并让测试作为捆绑过程的一部分运行。