为Selenium测试运行生成Ember代码覆盖率

有人知道如何根据Selenium测试生成Ember代码覆盖率指标吗?我已经用Groovy / Java编写了一些测试。

我已经找到了与伊斯坦堡合作的人的文件。一个示例是Front End Javascript Test Coverage with Istanbul Selenium

还有一个Ember CLI Code Coverage工具,以伊斯坦布尔生产的仪器为基础。但是,从我到目前为止收集的信息来看,该工具似乎完全包围了Istanbul工具,因此仅允许在构建之前为余烬单元和集成测试生成代码覆盖率统计信息。它存储从伊斯坦布尔结果到Ember代码的自己映射的位置并不十分明显,至少对于像我这样的Java开发人员而言并不如此。

我正在寻找一种生成仅供内部使用的战争文件的方法,该文件同时具有Istanbul工具和到余烬代码的映射,并且Selenium可以触发以生成Ember代码覆盖率报告。对于如何执行此操作的任何见解将不胜感激。

insanenana 回答:为Selenium测试运行生成Ember代码覆盖率

事实证明,以上景点没有解决的主要障碍不是Ember本身,它基本上只是Javascript。问题在于Ember基于Java的ES6较新版本,而Istanbul的原始版本是为ES5编写的。

对于ES6仪器,用于跨浏览器兼容性的应用程序Babel具有可用的Istanbul插件。 Istanbul tutorial展示了如何在 单元 测试中使用它。诀窍是弄清楚如何引导检测过程,以将检测的代码放入war文件中,然后将其分发到浏览器可以访问的服务器。 (我们的Ember专家认为是这样,所以我无法在此回复中概述该解决方案。)

一旦服务器运行有可以通过Selenium测试击中该war文件的服务器,则必须在测试末尾添加代码(就在它们离开该站点之前),以访问window .__ coverage__对象并将其输出到每个测试会话结束时保存文件。有关如何执行此操作的示例,请参见以下类似问题的答案:https://sqa.stackexchange.com/a/41715/29877

假设您编写该代码以将一个或多个coverage文件输出到名为“ usage”的目录,并在其旁边创建另一个名为“ coverage”的目录。然后,您可以从它们的公共父目录运行此命令,以在“ coverage”目录中生成基本的html报告:

nyc report --exclude-after-remap=false --report-dir=./coverage --reporter=html -t ./usage

(请参阅install the nyc utility的这些说明。)

现在,您可以通过在浏览器中打开coverage / index.html来查看该报告。当然,nyc有多个--reporter选项可用于生成其他类型的报告。

本文链接:https://www.f2er.com/2369641.html

大家都在问