Karma是一個(gè)測(cè)試運(yùn)行器,它可用于運(yùn)行各種測(cè)試框架,例如Jasmine和Mocha。Karma本身不提供測(cè)試框架,而是負(fù)責(zé)啟動(dòng)瀏覽器,運(yùn)行測(cè)試,在控制臺(tái)輸出測(cè)試結(jié)果等任務(wù)。Vue框架集成了Karma,使得我們可以基于Karma運(yùn)行測(cè)試。
Vue提供了一個(gè)官方的測(cè)試庫(kù)Vue Test Utils。該庫(kù)可以讓我們編寫(xiě)和運(yùn)行單元測(cè)試和端到端測(cè)試。雖然Vue Test Utils自己不提供測(cè)試框架,但它兼容市面上所有主流的測(cè)試框架,如Mocha、Chai、Jest、AVA等。
# 安裝Karma和相關(guān)插件
npm install --save-dev karma karma-chrome-launcher karma-mocha karma-mocha-reporter karma-sinon-chai karma-webpack
# 安裝Vue Test Utils
npm install --save-dev @vue/test-utils
為了能夠運(yùn)行測(cè)試,我們需要編寫(xiě)一個(gè)Karma配置文件。以下是一個(gè)簡(jiǎn)單的Karma配置文件示例:
const webpackConfig = require('@vue/cli-service/webpack.config.js');
module.exports = function(config) {
config.set({
basePath: '',
browsers: ['Chrome'],
frameworks: ['mocha', 'sinon-chai'],
files: ['tests/**/*.spec.js'],
preprocessors: {
'tests/**/*.spec.js': ['webpack', 'sourcemap']
},
reporters: ['spec'],
singleRun: true,
webpack: webpackConfig,
webpackMiddleware: {
noInfo: true
}
});
};
在這個(gè)配置文件中,我們指定了瀏覽器類(lèi)型、測(cè)試框架、測(cè)試文件路徑、預(yù)處理器、報(bào)告器、webpack配置等各項(xiàng)參數(shù)。