Halo semuanya, saya ingin memberi tahu Anda cara menambahkan cakupan kode ke proyek sudut / reaksi. Di internet Anda dapat menemukan beberapa opsi untuk melakukan ini, dan dari pengalaman saya sendiri, saya harus mencatat bahwa terkadang dengan sudut tidak begitu mudah. Mari kita lihat cara menambahkan cakupan kode ke versi 11 dari sudut (jika Anda memiliki 7/8 ... contoh ini mungkin tidak berfungsi, perbarui lebih baik)
Angular
Instal semua dependensi
npm i -D ngx-build-plus
npm i -D istanbul-instrumenter-loader
npm install -D @cypress/code-coverage
Pindah dari busur derajat ke cemara
ng add @briebug/cypress-schematic
Buat file cypress / coverage.webpack.js
module.exports = {
module: {
rules: [
{
test: /\.(js|ts)$/,
loader: 'istanbul-instrumenter-loader',
options: { esModules: true },
enforce: 'post',
include: require('path').join(__dirname, '..', 'src'),
exclude: [
/\.(e2e|spec)\.ts$/,
/node_modules/,
/(ngfactory|ngstyle)\.js/
]
}
]
}
};
Mari perbarui angular.jso kita
"serve": {
"builder": "ngx-build-plus:dev-server",
"options": {
"browserTarget": "angular-registration-login-example:build",
"extraWebpackConfig": "./cypress/coverage.webpack.js"
}
},
Tambahkan ke cypress / support / index.js
import '@cypress/code-coverage/support';
Tambahkan ke cypress / plugins / index.js
module.exports = (on, config) => {
require('@cypress/code-coverage/task')(on, config)
// IMPORTANT to return the config object
// with the any changed environment variables
return config
}
Mari jalankan aplikasi, konsol harus memiliki variabel window .__ coverage__
Setelah memulai aplikasi, yang tersisa hanyalah menjalankan tes npm run cy: open / cy: run
"cy:open": "cypress open",
"cy:run": "cypress run",
Segera setelah tes berhasil, folder cakupan akan dibuat di root aplikasi.
Anda bisa melihat hasilnya dengan membuka file coverage / lcov-report / index.html
Dengan mengklik komponen, Anda dapat melihat kode mana yang telah dijalankan dan berapa kali, dan mana yang belum tercakup oleh tes
Proyek itu sendiri dapat diunduh di sini: https://github.com/NikolayKozub/angular-coverage-cypress
Reaksi
Instal semua dependensi
npm i -D nyc
babel-plugin-istanbul
istanbul-lib-coverage
@cypress/code-coverage
@cypress/instrument-cra
Tambahkan ke cypress / plugins / index.js
module.exports = (on, config) => {
require('@cypress/code-coverage/task')(on, config)
return config
}
Tambahkan ke cypress / support / index.js
import '@cypress/code-coverage/support'
Tambahkan skrip ke package.json
"start": "react-scripts start",
"start:coverage": "react-scripts -r @cypress/instrument-cra start",
Tambahkan .babelrc ke root proyek
{
"plugins": ["istanbul"]
}
Kami menjalankan tes dan melihat laporannya
Anda dapat membaca lebih lanjut di sini