sapui5 OPA5 测试中的代码覆盖率

Code coverage in sapui5 OPA5 tests

我可以看到在 SAPUI5 Qunit 测试中有复选框选项用于检查代码覆盖率(通过复选框或使用 URL 参数 ?coverage) 但是在 sapui5 的 OPA5 测试中,没有代码覆盖率复选框,如果我添加 URL 参数 ?coverage,测试 运行 常规没有代码覆盖率。 sapui5中的OPA5测试不支持代码覆盖?

谢谢!

最近Opa5引入了component based testing,估计从1.34开始,调用component based test的代码是这样的

 iStartMyUIComponent({
   componentConfig: {
       name: <foo.my.component.path>
                },
      hash: ""
 });

在基于组件的方法之前,我们只能选择 运行 通过 IFrame 进行 Opa5 测试,调用基于框架的测试的代码类似于

iStartMyApp: function (oOptions) {
    var sUrlParameters;
    oOptions = oOptions || { delay: 0 };

    sUrlParameters = "serverDelay=" + oOptions.delay;

    this.iStartMyAppInAFrame(getFrameUrl(oOptions.hash, sUrlParameters));
},

许多可用的旧示例使用框架方法,默认情况下不包括覆盖范围,要使用框架方法获得测试覆盖率,您可以使用类似 OpenUi5 Karma with Istanbul 的方法。

有了基于组件的 OpaTests,我们现在可以通过捆绑的 Blanket.js 模块获得覆盖率

请参阅 Opa5 with Test Coverage 示例,在此示例中,您会注意到覆盖选项、复选框已选中并且还有一个额外的 URL 参数,向下看页面底部的lcov输出。

要在您的 Qunit 中获得覆盖功能 运行您需要包含以下模块

jQuery.sap.require("sap.ui.qunit.qunit-coverage");

hth

JSP

在您的 opaTest.qunit.html 中添加以下代码行以及其他 jQuery.sap.require 文件 -

jQuery.sap.require("sap.ui.qunit.qunit-coverage");  // used for code coverage

但请确保将其添加到 qunit 测试文件之后而不是之前。