我正在将一些npm脚本移植到Webpack加载器以更好地了解Webpack是如何工作的,除了我的Mocha测试之外我还有一切正常工作:我有一个失败的测试,但它没有显示Mocha正在运行mocha-loader或测试失败了:
我需要做些什么来让所有src/**/*.test.js文件与Webpack中的Mocha一起运行?
npm test以查看测试应如何工作npm run dev以查看如何使用Webpack运行测试当测试.js具有Webpack CSS导入的文件时import './style.css',Mocha会抛出语法错误(因为它尝试将CSS文件导入并解析为JS).有一个解决方案已经发布在Stack Overflow上,但只有在你还没有使用Mocha的编译器时它才会解决.我正在使用Babel 5.我尝试了以下内容,但似乎Mocha不支持传递多个编译器:
// npm test script
mocha ./src/**/*Test.js --compilers css:./scripts/mocha-webpack-compiler.js js:babel/register
// scripts/mocha-webpack-compiler.js
function noop() {
return null;
}
require.extensions['.css'] = noop;
Run Code Online (Sandbox Code Playgroud)
有没有办法让多个Mocha编译器,或更好的方式告诉Mocha不要尝试解析Webpack CSS导入?
编辑:
我喜欢@Giles B下面提出的解决方案; 这正是我所需要的.但是,由于我仍然使用Babel 5,我需要进行一些调整,如下所示:
--require scripts/support/babelhook
--require scripts/support/mocha-webpack-compiler
Run Code Online (Sandbox Code Playgroud)
require('babel/register');
Run Code Online (Sandbox Code Playgroud)
function noop() {
return null;
}
require.extensions['.css'] = noop;
Run Code Online (Sandbox Code Playgroud)
mocha ./src/**/*Test.js
Run Code Online (Sandbox Code Playgroud)
这对我使用babel和babel-core两个版本都有用5.8.23.
我正在尝试学习如何使用React Shallow Rendering TestUtil并让测试通过,直到我onClick向两者添加了一个事件处理程序; 似乎在Accordion.toggle我试图在Accordion.test.jsvs this.toggle中使用的函数必定存在一些差异Accordian.js......但我无法弄明白.
如何通过两个突出显示的测试Accordian.test.js?
npm installnpm run dev - 当您单击"Lorem Ipsum"时,看到该组件正常工作npm run test:watch - 看到测试失败了我正在寻找类似的东西,Object.keys但适用于潜在的嵌套对象.它也不应该包含具有对象/数组值的键(它应该只包含具有直接字符串/数字/布尔值的键).
{
"check_id":12345,
"check_name":"Name of HTTP check",
"check_type":"HTTP"
}
Run Code Online (Sandbox Code Playgroud)
[
"check_id",
"check_name",
"check_type"
]
Run Code Online (Sandbox Code Playgroud)
Object.keys 适用于像这样的扁平案例,但不适用于嵌套案例:
{
"check_id":12345,
"check_name":"Name of HTTP check",
"check_type":"HTTP",
"tags":[
"example_tag"
],
"check_params":{
"basic_auth":false,
"params":[
"size"
],
"encryption": {
"enabled": true,
}
}
}
Run Code Online (Sandbox Code Playgroud)
[
"check_id",
"check_name",
"check_type",
"check_params.basic_auth",
"check_params.encryption.enabled"
]
Run Code Online (Sandbox Code Playgroud)
请注意,这并不包括tags,check_params,check_params.params,或者check_params.encryption因为这些值是数组/对象.
有没有这样做的图书馆?你将如何实现它,以便它可以使用任何对象,大型和嵌套,或小?