Angular CLI进行单元测试和E2E测试步骤详解

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

第一篇文章是: “使用angular cli生成angular5项目” :http://www.jb51.net/article/136621.htm

第二篇文章是: “使用angular cli从蓝本生成代码” :http://www.jb51.net/article/137031.htm

第三篇文章是: “使用Angular CLI生成路由” :http://www.jb51.net/article/137033.htm

第四篇文章时: “使用Angular CLI进行Build (构建) 和 Serve”:http://www.jb51.net/article/137034.htm

本文是该系列的最后一篇文章.

单元测试.

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

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

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

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

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

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

ng new sales --routing

登录后复制

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

ng test

登录后复制

Angular CLI进行单元测试和E2E测试步骤详解

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

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

ng g c personng g c orderng g m admin --routingng g c admin/userng g c admin/email

登录后复制

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

Angular CLI进行单元测试和E2E测试步骤详解

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

Angular CLI进行单元测试和E2E测试步骤详解

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

可以看一下spec list:

Angular CLI进行单元测试和E2E测试步骤详解

Angular CLI进行单元测试和E2E测试步骤详解

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

那么如何解决这个问题?

打开admin.component.spec.ts:

Angular CLI进行单元测试和E2E测试步骤详解

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

Angular CLI进行单元测试和E2E测试步骤详解

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

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

–colors 输出结果使用各种颜色 默认开启

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

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

–sourcemaps -sm 生成sourcemaps 默认开启

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

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

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

测试代码覆盖率:

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

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

ng test -sr -cc

登录后复制

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

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

Angular CLI进行单元测试和E2E测试步骤详解

直接打开index.html:

Angular CLI进行单元测试和E2E测试步骤详解

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

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

Angular CLI进行单元测试和E2E测试步骤详解

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

Angular CLI进行单元测试和E2E测试步骤详解

Angular CLI进行单元测试和E2E测试步骤详解

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

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

Angular CLI进行单元测试和E2E测试步骤详解

再次执行ng test –sr -cc

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

Angular CLI进行单元测试和E2E测试步骤详解

只有catch部分没有覆盖到.

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

Debug单元测试.

首先执行ng test:

Angular CLI进行单元测试和E2E测试步骤详解

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

Angular CLI进行单元测试和E2E测试步骤详解

然后按cmd+p:

找到需要调试的文件:

Angular CLI进行单元测试和E2E测试步骤详解

设置断点:

Angular CLI进行单元测试和E2E测试步骤详解

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

Angular CLI进行单元测试和E2E测试步骤详解

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

Angular CLI进行单元测试和E2E测试步骤详解

E2E测试的参数.

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

它的命令是 ng e2e.

常用的参数有:

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

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

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

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

–webdriver-update -wu 尝试更新webdriver 默认true

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

ng e2eng e2e -ee

登录后复制

Debug E2E测试.

看一下项目:

Angular CLI进行单元测试和E2E测试步骤详解

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

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

看一下spec和po文件:

Angular CLI进行单元测试和E2E测试步骤详解

Angular CLI进行单元测试和E2E测试步骤详解

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

Angular CLI进行单元测试和E2E测试步骤详解

应该是没问题的.

所以执行ng e2e:

Angular CLI进行单元测试和E2E测试步骤详解

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

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

ng e2e -ee

登录后复制

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

Angular CLI进行单元测试和E2E测试步骤详解

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

如果想退出调试, 那就按Ctrl+c或者输入.exit即可.

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

JS实现鼠标触发悬浮层效果

Vue中computed与methods使用区别

以上就是Angular CLI进行单元测试和E2E测试步骤详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2764934.html

(0)
上一篇 2025年3月8日 10:38:19
下一篇 2025年3月8日 10:38:38

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Angular组件交互步骤详解

    这次给大家带来Angular组件交互步骤详解,Angular组件交互步骤详解的注意事项有哪些,下面就是实战案例,一起来看一下。 在Angular应用开发中,组件可以说是随处可见的。本篇文章将介绍几种常见的组件通讯场景,也就是让两个或多个组件…

    编程技术 2025年3月8日
    200
  • Angular CLI构建与Serve使用详解

    这次给大家带来Angular CLI构建与Serve使用详解,Angular CLI构建与Serve使用的注意事项有哪些,下面就是实战案例,一起来看一下。 Build. Build主要会做以下动作: 编译项目文件并输出到某个目录 Build…

    2025年3月8日 编程技术
    200
  • Angular CLI生成路由步骤详解

    这次给大家带来Angular CLI生成路由步骤详解,Angular CLI生成路的注意事项有哪些,下面就是实战案例,一起来看一下。 我们知道使用 ng g module admin 将会生成admin module. 而使用 ng g m…

    2025年3月8日 编程技术
    200
  • Angular CLI蓝本生成代码

    这次给大家带来Angular CLI蓝本生成代码,Angular CLI蓝本生成代码的注意事项有哪些,下面就是实战案例,一起来看一下。 这篇文章主要是讲生成 Components, Directive, Service, class, in…

    2025年3月8日 编程技术
    200
  • Angular Component使用案例详解

    这次给大家带来Angular Component使用案例详解,Angular Component使用的注意事项有哪些,下面就是实战案例,一起来看一下。 Web Component 在介绍Angular Component之前,我们先简单了解…

    编程技术 2025年3月8日
    200
  • Angular给服务端渲染实战案例

    这次给大家带来Angular给服务端渲染实战案例,Angular给服务端渲染的注意事项有哪些,下面就是实战案例,一起来看一下。 Angular Universal Angular在服务端渲染方面提供一套前后端同构解决方案,它就是Angula…

    2025年3月8日 编程技术
    200
  • Angular有哪些方法可以实现字母大小写转换

    这次给大家带来Angular有哪些方法可以实现字母大小写转换,Angular实现字母大小写转换的注意事项有哪些,下面就是实战案例,一起来看一下。 angular过滤器uppercase/lowercase字母大小写转换 输出大写输出小写va…

    编程技术 2025年3月8日
    200
  • Angular使用ng-click同时上传多个参数

    这次给大家带来Angular使用ng-click同时上传多个参数,Angular使用ng-click同时上传多个参数的注意事项有哪些,下面就是实战案例,一起来看一下。 angular ng-click用于操作事件的指令 点击执行 点击执行,…

    编程技术 2025年3月8日
    200
  • Angular里使用better-scroll插件步骤详解

    这次给大家带来Angular里使用better-scroll插件步骤详解,Angular里使用better-scroll插件的注意事项有哪些,下面就是实战案例,一起来看一下。 better-scroll的使用 由于需要在一个固定的的高度做无…

    编程技术 2025年3月8日
    200
  • js对数值数组进行去重与优化

    这次给大家带来js对数值数组进行去重与优化,js对数值数组进行去重与优化的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 本文主要介绍了关于js构建二叉树进行数值数组的去重与优化的相关内容,分享出来供大家参考学习,下面话不多说了,来…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论