karma2
  我们修改test.js
~ vi test.js
describe("A suite of basic functions", function() {
it("reverse word",function(){
expect("DCBA").toEqual(reverse("ABCD"));
expect("Conan").toEqual(reverse("nano"));
});
});
  由于karma.conf.js配置文件中autoWatch: true, 所以test.js文件保存后,会自动执行单元测试。
  执行日志如下:提示我们单元测试出错了。
INFO [watcher]: Changed file "D:/workspace/javascript/karma/test.js".
Chrome 28.0.1500 (Windows 7) A suite of basic functions reverse word FAILED
Expected 'Conan' to equal 'onan'.
Error: Expected 'Conan' to equal 'onan'.
at null. (D:/workspace/javascript/karma/test.js:4:25)
Chrome 28.0.1500 (Windows 7): Executed 1 of 1 (1 FAILED) ERROR (0.3 secs / 0.006 secs)
  5. Karma和istanbul代码覆盖率
  增加代码覆盖率检查和报告,增加istanbul依赖
  ~ D:workspacejavascriptkarma>npm install karma-coverage
  修改karma.conf.js配置文件
~ vi karma.conf.js
reporters: ['progress','coverage'],
preprocessors : {'src.js': 'coverage'},
coverageReporter: {
type : 'html',
dir : 'coverage/'
}
  启动karma start,在工程目录下面找到index.html文件,coverage/chrome/index.html
  打开后,我们看到代码测试覆盖绿报告

  karma3
  覆盖率是,说明我们完整了测试了src.js的功能。
  接下来,我们修改src.js,增加一个if分支
function reverse(name){
if(name=='AAA') return "BBB";
return name.split("").reverse().join("");
}
  再看覆盖率报告,

  karma4
  Statements:75%覆盖,Branches:50%覆盖。
  为了产品的质量我们要尽量达到更多的覆盖率,一般对于JAVA项目来说,能达到80%是相当高的标准了。对于Javascript的代码测试及覆盖率研究,我还要做更多的验证。
  6. Karma第一次启动时出现的问题
  CHROME_BIN的环境变量问题
~ D:workspacejavascriptkarma>karma start karma.conf.js
INFO [karma]: Karma v0.10.2 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
ERROR [launcher]: Cannot start Chrome
Can not find the binary C:UsersAdministratorAppDataLocalGoogleChromeApplicationchrome.exe
Please set env variable CHROME_BIN
  设置方法:找到系统中chrome的安装位置,找到chrome.exe文件
  ~ D:workspacejavascriptkarma>set CHROME_BIN="C:Program Files (x86)GoogleChromeApplicationchrome.exe"