
[英]Using testacular is it possible to run Jasmine and Mocha through tests at the same time?
[英]Can I run Jasmine tests through Mocha
正如标题所说,我希望能够在节点上使用Mocha运行Jasmine测试。 作为一个实验,我安装了Jasmine和Mocha并运行
jasmine examples
安装示例。
运行Jasmine按预期运行测试:
$ ./node_modules/jasmine/bin/jasmine.js
Started
.....
5 specs, 0 failures
Finished in 0.012 seconds
但是在Mocha中运行测试不起作用:
$ ./node_modules/mocha/bin/mocha spec/jasmine_examples/PlayerSpec.js
0 passing (11ms)
5 failing
1) Player
should be able to play a Song:
ReferenceError: expect is not defined
at Context.<anonymous> (spec\jasmine_examples\PlayerSpec.js:14:5)
等等
同样地,如果我尝试将jasmine.createSpy()调用添加到测试中,它在Jasmine下工作正常,但在Mocha下它会报告
ReferenceError: jasmine is not defined
可能是我不应该完全惊讶,但因为我是这个Javascript世界的新手,有人可以向我解释如何使其工作或为什么它不起作用?
如果有人想知道我为什么要这样做,作为一个团队,我们使用Jasmine,但我使用IntelliJ作为我的IDE。 这不了解Jasmine测试,所以我必须手动创建运行配置来运行特定的测试。 如果我可以让他们在Mocha下运行,我可以使用内置的Mocha支持,只需点击IntelliJ旁边的Mocha测试的小箭头。
Jasmine和Mocha之间存在肤浅的相似之处( describe
, it
等等),但是如果你想在两者之下运行套件,那么必须弥合很多差异。 你不能采用Jasmine套件,并且通常期望它在没有修改的情况下在Mocha中工作。 Jasmine不是为了运行Mocha测试而设计的,而Mocha不是为运行Jasmine测试而设计的。
例如,Mocha无法对jasmine.createSpy()
做任何事情。 它甚至没有内置于Mocha本身的等效物。 如果你要将你的套件移植到Mocha(即放弃Jasmine而不是Mocha),你必须使用像Sinon这样的库来提供类似的功能。 如果你想让你的套件同时在Mocha和Jasmine中运行,那么你可以通过一个包装器库来弥补差距,该库可以检测它正在运行的运行器并根据需要调用jasmine.createSpy()
或Sinon等效项,但是任何非平凡的测试套件所需的工作量都很大。 (坦率地说,我没有任何项目可以证明费用是合理的。)
您还必须使用像Chai这样的库来提供expect
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.