单元测试覆盖率
  如果需要对单元测试覆盖率进行统计,可以安装karma-coverage并配置karma文件。这样在单元测试完成后,会生成测试覆盖率报告文档。
  npm install karma-coverage -save
  在karma.conf.js文件中加入节点
// 新增节点用于配置输出文件夹
coverageReporter: {
type: 'html',
dir: 'coverage'
},
// 新增节点用于配置需要测试的文件地址(这里是controller地址)
preprocessors: {'js/*.js': ['coverage']}
// 新增元素'karma-coverage'
plugins: [
'karma-chrome-launcher',
'karma-jasmine',
'karma-junit-reporter',
'karma-coverage',
],
// 新增元素 coverage
reporters: ['progress', 'coverage'],
  运行单元测试后在目录中生成coverage文件夹,点击index.html可以查看测试覆盖率。

  E2E测试
  e2e或者端到端(end-to-end)或者UI测试是一种测试方法,它用来测试一个应用从头到尾的流程是否和设计时候所想的一样。简而言之,它从一个用户的角度出发,认为整个系统都是一个黑箱,只有UI会暴露给用户。
  配置E2E测试
  新建文件夹e2e-test新建protractor.conf.js文件,用于配置protractor框架,代码如下。
exports.config = {
allScriptsTimeout: 11000,
baseUrl: 'http://localhost:8000/app/',
// Capabilities to be passed to the webdriver instance.
capabilities: {
'browserName': 'chrome'
},
framework: 'jasmine',
// Spec patterns are relative to the configuration file location passed
// to protractor (in this example conf.js).
// They may include glob patterns.
specs: ['*.js'],
// Options to be passed to Jasmine-node.
jasmineNodeOpts: {
showColors: true, // Use colors in the command line report.
},
defaultTimeoutInterval: 30000
};
  配置package.json scripts脚本节点
  "preupdate-webdriver": "npm install",
  "update-webdriver": "webdriver-manager update",
  "preprotractor": "npm run update-webdriver",
  "protractor": "protractor e2e-test/protractor.conf.js"
  编写e2e测试脚本
  设计测试用例:文本框a的值录入1,文本框b录入2,期望结果3
describe('index.html', function() {
beforeEach(function() {
browser.get('http://localhost:8000/html');
});
it('get index html', function() {
var a = element(by.model('a'));
var b = element(by.model('b'));
a.sendKeys(1);
b.sendKeys(2);
var result = element(by.id('result'));
expect(result.getText()).toEqual('3');
});
});
  执行测试查看测试结果
  需要执行命名,查看是否更新webdriver(什么是webdriver http://sentsin.com/web/658.html),
  手动安装protractor至全局
  npm i -g protractor
  注:安装或更新webdriver需要FQ,请在webstrom中设置代理地址。
  在webstrom中切换至Terminal窗口,在Terminal窗口通过以下方式设置代理:
  set PROXY=http://localhost:1080
  set HTTP_PROXY=%PROXY%
  set HTTPS_PROXY=%PROXY%
  代理设置成功后,运行以下命令
  npm run update-webdriver
  执行e2e测试,这是会弹出浏览器,自动点击浏览器,录入脚本输入完成自动化e2e测试,其本质还是调用selenium测试。
  npm run protractor