Mocha在移动端怎么跑测试用例?
我在写一个移动端的H5项目,想用Mocha做单元测试,但不知道怎么在手机上实际运行这些测试。本地浏览器跑没问题,可真机调试时完全没反应。
试过把mocha.run()放进页面,也引入了 mocha.css 和 mocha.js,但手机上打开测试页一片空白,控制台也没报错。是不是移动端有什么特别的配置?
我的测试代码结构大概是这样:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="./node_modules/mocha/mocha.css">
</head>
<body>
<div id="mocha"></div>
<script src="./node_modules/mocha/mocha.js"></script>
<script>mocha.setup('bdd');</script>
<script src="./test/my-test.js"></script>
<script>mocha.run();</script>
</body>
</html>
首先检查下是不是这几个原因:
1. 路径问题,移动端访问时node_modules路径可能不对。建议把mocha.js和mocha.css复制到public目录下,或者用CDN引入:
2. 移动端可能缓存了空白页面,试试在URL后面加随机参数强制刷新:
3. 测试文件加载顺序问题,确保mocha.setup在测试文件之前执行,run在最后执行。你现在的写法是对的。
4. 真机调试建议用charles或fiddler抓包看下有没有404错误,有时候移动端网络环境比较特殊。
如果还不行,可以试试这个万金油方案:把测试页面单独起个本地服务,然后手机和电脑连同一个WiFi访问。比如用http-server:
然后手机访问电脑IP:8080/test.html
另外吐槽下,移动端跑单元测试确实蛋疼,建议重要逻辑尽量在Node环境测,移动端主要做e2e测试。