Mocha在移动端浏览器里跑不起来怎么办?
我在用 Mocha 写前端单元测试,桌面浏览器没问题,但放到手机 Safari 或 Chrome 上就报错,控制台显示 ReferenceError: describe is not defined,是不是移动端不支持 Mocha 啊?
我试过直接引入 mocha.js 和 chai.js,HTML 结构也照官网写的:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Mocha Tests</title>
<link rel="stylesheet" href="https://unpkg.com/mocha/mocha.css" rel="external nofollow" />
</head>
<body>
<div id="mocha"></div>
<script src="https://unpkg.com/chai/chai.js"></script>
<script src="https://unpkg.com/mocha/mocha.js"></script>
<script>
mocha.setup('bdd');
const { expect } = chai;
</script>
<script src="test.js"></script>
<script>
mocha.run();
</script>
</body>
</html>
难道移动端需要额外配置什么?还是得用别的测试框架?
试试这个改法,效率更高而且稳定:
关键点:
1. 先加载mocha再加载chai,顺序不能错
2. 用mocha.setup().then()确保初始化完成
3. 测试代码要么内联要么动态加载,避免脚本阻塞
移动端浏览器有时会并行加载脚本导致依赖关系错乱,这方案能解决90%的兼容性问题。要是还不行,可以加上
async或defer属性控制加载时机。别折腾换框架了,Mocha在移动端完全能用,就是得注意这些细节。我当初也在这坑里卡了半天,后来发现就是加载时序的问题。