node项目mocha自动化测试的疑问
测试框架:mocha
数据库:mysql和mongodb
疑问1. 如何控制多个测试用例的运行顺序?用例写多了,A用例把数据变成了状态1,有些后面的用例基于这个状态1的数据进行查询判断,才能使得后面的用例正常运行,可是由于很多异步,用例A可能没运行完,后面的就跑起来了,数据都不对头,我希望能确保A用例跑完了再跑后面的,就是定义运行顺序
疑问2. 除了定义顺序以外,还能否定义依赖,在不调整顺序的情况下,用例声明依赖某个用例运行成功才运行,否则就skip,类似PHP的PHPUnit的@depends
疑问3. 许多用例对数据库进行了各种增删改查,在不编写删除/更新代码对数据进行恢复的情况下让数据恢复。我用PHP开发的时候解决方案是这样的:将一个定义好的mysql数据库导出sql文件,配置给PHP的测试框架,该测试框架每次启动时会清空数据库,然后导入这个sql文件,于是数据库就构建成了这个sql的内容,所有测试代码都是基于这个内容状态进行测试,怎么改都无所谓,反正下次启动的时候数据库又会被恢复,我希望node在这方面也有一个解决方案可以做到这样,否则的话也只好我自己开发这样的自动清空数据库和重新导入的模块了
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
1.
it('test some async function', done => {...})
你可以传入
done
函数,当异步结束完最后调用done,这样就可以定义运行顺序了。async函数就不用传入done了,自己用await控制好就行
如果要定义不同文件之间的运行顺序,比如A要在B之前,只需在B的第一行加上
require('./A')
即可2.
这个可以自己定义变量来控制顺序的吧。。或者可以看看mocha的官方文档
3.
before(() => {...})
在before函数里定义单测之前要执行的函数,一个比较好的实践方式就是,先删库,再跑单测。
如果要准备数据,可以专门写一个
prepare.js
,然后在单测文件的第一行require('./prepare')
即可。