Rumah hujung hadapan web tutorial js Angular CLI进行单元测试与E2E测试

Angular CLI进行单元测试与E2E测试

Jun 14, 2018 am 10:28 AM
angular cli Ujian unit

这次给大家带来Angular CLI进行单元测试与E2E测试,Angular CLI进行单元测试与E2E测试的注意事项有哪些,下面就是实战案例,一起来看一下。

单元测试.

angular cli使用karma进行单元测试.

首先执行ng test --help或者ng test -h查看帮助.

执行测试的话就执行ng test即可, 它会执行项目里所有的.spec.ts文件.

而且它还会检测文件的变化, 如果文件有变化, 那么它会重新执行测试.

它应该在单独的终端进程中执行.

首先创建一个angular项目, 带路由的:

ng new sales --routing
Salin selepas log masuk

创建好项目后, 直接执行命令测试:

ng test
Salin selepas log masuk

然后会弹出一个页面, 就是测试的结果数据.

下面我再添加几个components 和 一个 admin module:

ng g c person
ng g c order
ng g m admin --routing
ng g c admin/user
ng g c admin/email
Salin selepas log masuk

然后配置一下路由, 最重要得到这个效果:

这时我重新执行一下ng test:

尽管程序运行没有问题, 但是测试还是出现了问题: router-outlet is not an angular component.

可以看一下spec list:

这时因为运行测试的时候, admin模块是独立运行的, 所以该模块并没有引用Router模块, 所以无法识别router-outlet.

那么如何解决这个问题?

打开admin.component.spec.ts:

把这句话填上, 然后就没有错误了:

NO_ERRORS_SCHEMA告诉angular忽略那些不识别的元素或者元素属性.

  1. --code-coverage -cc 代码覆盖率报告, 默认这个是不开启的, 因为生成报告的速度还是比较慢的.

  2. --colors 输出结果使用各种颜色 默认开启

  3. --single-run -sr 执行测试, 但是不检测文件变化 默认不开启

  4. --progress 把测试的过程输出到控制台 默认开启

  5. --sourcemaps -sm 生成sourcemaps 默认开启

  6. --watch -w 运行测试一次, 并且检测变化 默认开启 

ng test 就是运行测试, 并且如果文件有变化, 就会重新运行测试.

使用ng test -sr或者ng test -w false 执行单次测试

测试代码覆盖率:

ng test --cc 的报告默认是生成在/coverage文件夹下, 但是可以通过修改.angular-cli.json里面的属性进行修改.

下面生成代码覆盖率报告:

ng test -sr -cc
Salin selepas log masuk

通常是配合-sr参数使用的(运行一次测试).

然后会在项目的coverage文件夹里生成一些文件:

直接打开index.html:

可以看到都是100%, 这是因为我没有写任何代码.

然后我在user component里面添加一些代码:

再运行一次 ng test --sr -cc:

可以看到这部分代码并没有覆盖到.

如果我把代码里到 canGetUsers改为true:

再次执行ng test --sr -cc

可以看到这次代码覆盖率变化了:

只有catch部分没有覆盖到.

我认为代码覆盖率这个内置功能是非常好的.

Debug单元测试.

首先执行ng test:

然后点击debug, 并打开开发者工具:

然后按cmd+p:

找到需要调试的文件:

设置断点:

然后在spec里面也设置一个断点:

最后点击浏览器的刷新按钮即可:

E2E测试的参数.

实际上angular cli是配合着protractor来进行这个测试的.

它的命令是 ng e2e.

常用的参数有:

  1. --config -c 指定配置文件 默认是 protractor.conf.js

  2. --element-explorer -ee 打开protractor的元素浏览器

  3. --serve -s 在随机的端口编译和serve 默认true

  4. --specs -sp 默认是执行所有的spec文件, 如果想执行某个spec就使用这个参数, 默认是all

  5. --webdriver-update -wu 尝试更新webdriver 默认true

通常执行下面机组命令参数组合即可:

ng e2e
ng e2e -ee
Salin selepas log masuk

Debug E2E测试.

看一下项目:

配置文件protractor.conf.js已经配置好.

而测试文件是在e2e目录下.

看一下spec和po文件:

再看一下app.component.html里面的值:

应该是没问题的.

所以执行ng e2e:

测试通过, 但是浏览器闪了一下就关闭了.

如果我想debug e2e, 那么执行这个命令:

ng e2e -ee
Salin selepas log masuk

由于我使用的是mac, 当前这个命令在mac上貌似确实有一个bug:

如果可以正常运行这个命令的话, 终端窗口会出现“Debugger listening on xxx: ”字样, 然后就可以在下面输入变量或者表达式来查看它们的值从而进行调试了.

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

Angular使用ng-click传递多个参数

H5触摸事件中如何判断用户滑动方向

Atas ialah kandungan terperinci Angular CLI进行单元测试与E2E测试. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Amalan ujian unit untuk antara muka dan kelas abstrak dalam Java Amalan ujian unit untuk antara muka dan kelas abstrak dalam Java May 02, 2024 am 10:39 AM

Langkah-langkah untuk antara muka ujian unit dan kelas abstrak dalam Java: Buat kelas ujian untuk antara muka. Buat kelas olok-olok untuk melaksanakan kaedah antara muka. Gunakan perpustakaan Mockito untuk mengejek kaedah antara muka dan menulis kaedah ujian. Kelas abstrak mencipta kelas ujian. Buat subkelas bagi kelas abstrak. Tulis kaedah ujian untuk menguji ketepatan kelas abstrak.

Perbezaan antara ujian prestasi dan ujian unit dalam bahasa Go Perbezaan antara ujian prestasi dan ujian unit dalam bahasa Go May 08, 2024 pm 03:09 PM

Ujian prestasi menilai prestasi aplikasi di bawah beban yang berbeza, manakala ujian unit mengesahkan ketepatan satu unit kod. Ujian prestasi memfokuskan pada mengukur masa tindak balas dan daya pemprosesan, manakala ujian unit memfokuskan pada output fungsi dan liputan kod. Ujian prestasi mensimulasikan persekitaran dunia sebenar dengan beban tinggi dan serentak, manakala ujian unit dijalankan di bawah beban rendah dan keadaan bersiri. Matlamat ujian prestasi adalah untuk mengenal pasti kesesakan prestasi dan mengoptimumkan aplikasi, manakala matlamat ujian unit adalah untuk memastikan ketepatan dan keteguhan kod.

Analisis kelebihan dan kekurangan alat ujian unit PHP Analisis kelebihan dan kekurangan alat ujian unit PHP May 06, 2024 pm 10:51 PM

Analisis alat ujian unit PHP: PHPUnit: sesuai untuk projek besar, menyediakan fungsi yang komprehensif dan mudah dipasang, tetapi mungkin bertele-tele dan perlahan. PHPUnitWrapper: sesuai untuk projek kecil, mudah digunakan, dioptimumkan untuk Lumen/Laravel, tetapi mempunyai fungsi terhad, tidak menyediakan analisis liputan kod dan mempunyai sokongan komuniti terhad.

Bagaimana untuk menyahpepijat skrip CLI PHP Bagaimana untuk menyahpepijat skrip CLI PHP May 31, 2024 am 10:44 AM

Bagaimana untuk menyahpepijat skrip PHPCLI? Gunakan fungsi var_dump() untuk memaparkan kandungan dan jenis pembolehubah. Tetapkan display_errors dan log_errors untuk memaparkan ralat dan log mereka dalam log ralat. Pasang dan konfigurasikan Xdebug untuk keupayaan penyahpepijatan lanjutan, termasuk pengesanan tindanan dan pemeriksaan pembolehubah.

Bagaimana untuk menggunakan kaedah ujian dipacu jadual dalam ujian unit Golang? Bagaimana untuk menggunakan kaedah ujian dipacu jadual dalam ujian unit Golang? Jun 01, 2024 am 09:48 AM

Ujian dipacu jadual memudahkan penulisan kes ujian dalam ujian unit Go dengan mentakrifkan input dan output yang dijangka melalui jadual. Sintaks termasuk: 1. Tentukan kepingan yang mengandungi struktur kes ujian 2. Gelung melalui kepingan dan bandingkan keputusan dengan output yang dijangkakan. Dalam kes sebenar, ujian dipacu jadual telah dilakukan pada fungsi menukar rentetan kepada huruf besar, dan gotest digunakan untuk menjalankan ujian dan keputusan lulus telah dicetak.

Apakah perbezaan antara ujian unit dan ujian integrasi dalam ujian fungsi golang? Apakah perbezaan antara ujian unit dan ujian integrasi dalam ujian fungsi golang? Apr 27, 2024 am 08:30 AM

Ujian unit dan ujian penyepaduan ialah dua jenis ujian fungsi Go yang berbeza, yang digunakan untuk mengesahkan interaksi dan penyepaduan fungsi tunggal atau berbilang fungsi masing-masing. Ujian unit hanya menguji kefungsian asas fungsi tertentu, manakala ujian penyepaduan menguji interaksi antara pelbagai fungsi dan penyepaduan dengan bahagian lain aplikasi.

Pengujian Unit PHP: Cara Mereka Bentuk Kes Ujian Berkesan Pengujian Unit PHP: Cara Mereka Bentuk Kes Ujian Berkesan Jun 03, 2024 pm 03:34 PM

Adalah penting untuk mereka bentuk kes ujian unit yang berkesan, mematuhi prinsip berikut: atom, ringkas, boleh berulang dan tidak jelas. Langkah-langkahnya termasuk: menentukan kod yang akan diuji, mengenal pasti senario ujian, mencipta penegasan dan menulis kaedah ujian. Kes praktikal menunjukkan penciptaan kes ujian untuk fungsi max(), menekankan kepentingan senario dan penegasan ujian tertentu. Dengan mengikuti prinsip dan langkah ini, anda boleh meningkatkan kualiti dan kestabilan kod.

Ujian Unit PHP: Petua untuk Meningkatkan Liputan Kod Ujian Unit PHP: Petua untuk Meningkatkan Liputan Kod Jun 01, 2024 pm 06:39 PM

Cara meningkatkan liputan kod dalam ujian unit PHP: Gunakan pilihan --coverage-html PHPUnit untuk menjana laporan liputan. Gunakan kaedah setAccessible untuk mengatasi kaedah dan sifat peribadi. Gunakan penegasan untuk mengatasi syarat Boolean. Dapatkan cerapan liputan kod tambahan dengan alat semakan kod.

See all articles