云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云存储_国内大带宽vps_免费1年

小七 141 0

云存储_国内大带宽vps_免费1年

第1部分:设置和单元测试第2部分:集成和OPA测试第3.1部分:模拟服务器第3.2部分:代码覆盖率和其他必要的有用性(本文)第4部分:高级测试第5部分:数字、经验和业务影响

在前面的部分中,我们建立了单元和集成测试,并使用Mockserver来模拟OData和REST后端。在本文中,将对场景的各个方面进行细化。如果你想亲力亲为的话,03琰mock-cov-usual分支已经为本文更新了。

测试UI5应用程序从浏览器到自动化在多个浏览器中并行测试代码覆盖率有用性仅限数量()奥帕托多,奥帕托多随机性,语义

从浏览器到自动化

到目前为止,运行测试都是基于浏览器的。也就是说,您必须打开一个浏览器实例,然后手动(重新)触发测试:8080. 这阻碍了开发的顺利进行:焦点不断地从编辑器切换到浏览器。为了满足切换的需要,让我们自动触发测试并在无头浏览器中运行它们。幸运的是,示例应用程序已经包含了此应用程序的所有基本设置如果你看一下应用程序的Gruntfile,从karma开始的部分描述了…嗯…karma的设置。Karma是一个测试运行框架,SAP提供了一个官方的Karma插件来执行UI5测试(在无头模式下使用Chrome)。

简而言之,Karma服务器在端口9876上启动,UI5源代码在本地主机:8080。中的UI5引导设置客户端.openui5.config看起来应该很熟悉,因为它们与引导任何UI5应用程序相同。请注意./base resource root–这是一个特殊的必要设置,多多淘客,因为karma服务器将其"文档根"设置为一个虚拟的"base"目录,在本例中,优惠券代理平台哪个好,该目录对应于webapp/。然后,首先运行sap/ui/demo/todo/test/Unit/allTests中的单元测试,然后运行sap/ui/demo/todo/test/Integration/AllJourneys中的集成测试。files部分告诉karma不仅要服务于document root aka webapp/中的所有文件,还要监听这些文件上的更改——因此一旦保存了一个编辑过的文件,testsuite就会自动重新运行,确保您的编码不会破坏任何现有功能。启动一个终端,导航到openui5示例应用程序测试的根目录,然后运行grunt watch来体验自己的体验。在编写代码时伴随测试运行,保护特性。整洁,是吗?!

在多个浏览器中并行测试

与上述无头测试有些矛盾,但可以肯定的是一个真实的用例:在多个浏览器中并行运行测试!(嘿,谁说"IE11"?基于karma的设置也可能在watchMultiBrowser任务中实现:

将在Firefox、Chrome、Opera、Edge和IE(11)中并行运行所有测试。

可能的浏览器列表是:

Safari边缘火狐铬歌剧院边缘IE

Karma在后台打开浏览器实例,开发体验不会中断太多。尽管如此,在多个浏览器中运行测试当然需要时间,而且应该是该规则的例外,例如在搜索跨浏览器bug时。这就是为什么我加入了一个只运行一次跨浏览器测试的grunt任务,不查看更改的文件:

可能的浏览器选项与上述相同。

代码覆盖率

testMultiBrowser grunt任务提供了一个很好的过渡到下一个主题:确定应用程序的运行时逻辑有多少被测试覆盖(也称为"代码覆盖率")。我不想参与关于测试所覆盖的代码百分比的哲学讨论,而是关注UI5版本中的技术可能性(:8080/测试/单元/unitTests.qunit.html, :8080/测试/集成/opaTests.qunit.html文件)不显示任何检查代码覆盖率的选项。原因是QUnit最初是毛毯.js因此,为了检查代码覆盖率,使用了基于业力的测试运行程序,反过来利用伊斯坦布尔进行分析。

预定义的grunt任务也可用于此:

将在无头状态下使用Chrome来运行所有测试并显示上面所示的代码覆盖率统计数据。

或者,您可以指定要使用的浏览器的逗号分隔列表,就像以前用于OPA测试一样:

作为额外的好处,grunt任务将每个浏览器的详细代码覆盖率报告放入/coverage/:

打开索引.html在每个目录中,您可以将报表深入到各个文件中,甚至突出显示代码行(!)如果你一直关注这个博客系列,你应该对单元测试和OPA测试以及如何使用Mockserver有一个很好的了解。这可能会导致为UI5应用程序编写大量的测试一段时间后,在测试套件的中间有一个单元测试一直失败。但是为了重新运行一个特定的测试,之前和之后的所有测试每次都需要运行,免费大数据,直到现在,返利下载,都会让你非常恼火。从昆特2号开始仅限数量–交换测试签名定量试验与仅限数量,云从,并且在使用grunt watch或调用:8080/测试/单元/unitTests.qunit.html

这是好消息-坏消息是,没有仅限opaTest()或opaOnly()(尚未)。(提示:我在上面