我有一个用vue-cli创建的项目,它使用mocha进行单元测试(默认设置)。我想写一个单元测试,但是我的设置失败了:
我的项目文件夹:
我失败并显示以下错误消息:
WARNING in ./src/assets/css/variables.styl
Module build failed: ParseError: /Users/kevin.hu/Documents/vreditor/src/assets/css/variables.styl:4:154
1| // style-loader: Adds some css to the DOM by adding a <style> tag
2|
3| // load the styles
4| var content = require("!!../../../node_modules/css-loader/index.js??ref--12-1!../../../node_modules/stylus-loader/index.js??ref--12-2!./variables.styl");
---------------------------------------------------------------------------------------------------------------------------------------------------------------^
5| if(typeof content === 'string') content = [[module.id, content, '']];
6| if(content.locals) module.exports = content.locals;
7| // add the styles to the DOM
所以我想运行测试跳过资产文件夹或其他文件夹。默认设置只排除main.js.如何写一个正则表达式来实现我想要的东西?
注意:这是默认设置:
const srcContext = require.context('../../src', true, /^\.\/(?!main(\.js)?$)/)
srcContext.keys().forEach(srcContext)
答案 0 :(得分:1)
也许是这样的:
const srcContext = require.context('../../src', true, /^\.\/(?!main(\.js)?$|assets(?![^\/]))/)
它使用相同的否定前瞻来排除资产。 (?![^\/])
表示后面没有一个不是斜杠的字符,换句话说:后跟斜杠或字符串的结尾。
如果要排除其他文件夹,使用非捕获组将(?![^\/])
置于因子中会更短:
/^\.\/(?!main(\.js)?$|(?:folder1|folder2|folder3)(?![^\/]))/