最近一直在跟进一个百度的开源项目,其中单测没有用我比较熟悉的jest,项目方用的是ava。在本地跑单测的时候发现一系列有意思的问题:
- 使用
ava@0.18.0,测试命令为ava -v的时候,ava的错误栈是没有异常的
- 使用
ava@0.25.0,测试命令为ava -v的时候,ava的错误栈是异常的
- 使用
ava@0.18.0搭配nyc,测试命令为nyc ava -v的时候,ava的错误栈是异常的
- 使用
ava@0.25.0搭配nyc,测试命令为nyc ava -v的时候,ava的错误栈是异常的
也就是除了单独使用ava@0.18.0,其余的搭配组合都是有问题的。在ava提交isssue之后,官方提供了一套issue的观光路线。我观光了一圈,了解到的大致意思就是:ava重写了babel-register的source-map,导致错误栈异常的问题。具体的解决办法就是在写代码的时候用“pure javascript”。。。不要用babel-register做转义。
顺带提一句,ava在ava@0.25.0中内置的babel是用来转义测试用例,而不是源代码的,如果源代码需要转义,还是需要babel-register,后来我把babel-register换成了esm,还是同样的问题。。。
最近一直在跟进一个百度的开源项目,其中单测没有用我比较熟悉的
jest,项目方用的是ava。在本地跑单测的时候发现一系列有意思的问题:ava@0.18.0,测试命令为ava -v的时候,ava的错误栈是没有异常的ava@0.25.0,测试命令为ava -v的时候,ava的错误栈是异常的ava@0.18.0搭配nyc,测试命令为nyc ava -v的时候,ava的错误栈是异常的ava@0.25.0搭配nyc,测试命令为nyc ava -v的时候,ava的错误栈是异常的也就是除了单独使用
ava@0.18.0,其余的搭配组合都是有问题的。在ava提交isssue之后,官方提供了一套issue的观光路线。我观光了一圈,了解到的大致意思就是:ava重写了babel-register的source-map,导致错误栈异常的问题。具体的解决办法就是在写代码的时候用“pure javascript”。。。不要用babel-register做转义。顺带提一句,ava在
ava@0.25.0中内置的babel是用来转义测试用例,而不是源代码的,如果源代码需要转义,还是需要babel-register,后来我把babel-register换成了esm,还是同样的问题。。。