Karma vs测试框架Jasmine,Mocha,QUnit [关闭]
几个问题:
回答(3)
设计Karma的人的论文在描述现有解决方案和比较它们方面非常有用,当然也描述了Karma本身
https://github.com/karma-runner/karma/blob/master/thesis.pdf
简介:Karma是一名试运行员 . 它可以被QUnit,Jasmine,Mocha使用...... Karma对其他测试跑步者有优势,可以改善您的TDD / BDD开发周期 . 它“监视”文件,因此当您保存更改时,Karma会立即运行测试并报告,而不会切换到Web浏览器的上下文来运行测试 .
简而言之,也许问题应该是Karma AND Jasmine或Mocha还是QUnit?
2 years ago
Karma是一个浏览器测试运行器 .
这个想法是浏览器本身没有加载测试文件,运行它们和报告结果的概念 . 业力所做的是(大致):
启动一个小型Web服务器来提供待测试的"client-side"个javascript文件(1)
也提供"client-side" javascript文件与测试(或规范,因为他们经常被称为)(2)
提供将运行测试的javascript代码的自定义网页(3)
启动浏览器加载此页面(4)
将测试结果报告给服务器(5)
然后
karma可以再次将结果报告给文本文件,控制台,CI服务器喜欢的任何内容等等......
看每个部分:
(1)这些文件将是你的实际js文件;你会告诉业力如何加载它们 . 如果你使用requirejs,有一个karma插件,需要一些配置 .
(2)这些测试可以用各种Javascript测试框架(Jasmine,QUnit,Mocha)编写;这是在浏览器中运行的JS代码 .
(3)每个测试框架的自定义网页会有所不同;这就是为什么业力有不同框架的插件 .
(4)Karma可以在许多浏览器(FF,Chrome或像PhantomJs这样的无头浏览器)中启动页面 .
(5)对业力的报告再次依赖于框架,并处理业力插件 .
那么回答你的问题:
在Java中
,大多数人使用JUnit,它既是编写测试并运行它们的框架,但没有区分运行测试的环境和聚合测试报告的环境的问题;业力将是JUnit Suite和JUnit TestRunner之间的缺失部分
是的,你可以做所有业力所做的事情"by hand" - 选择一个框架(茉莉,qunit,摩卡)并遵循指示 . 业力的优势在于,如果您处于标准设置中,它可以提供开箱即用的解决方案 .
Karma可用于单元测试(使用jasmine / qunit / whatever)和集成测试(将使用其他API,如webdriver,来驱动浏览器)