单元测试覆盖率
如果需要对单元测试覆盖率进行统计,可以安装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