【问题标题】:JS code coverage with selenium testsSelenium 测试的 JS 代码覆盖率
【发布时间】:2017-05-23 11:40:14
【问题描述】:

我不熟悉捕获 JS 覆盖的整个概念。 我打算使用 JS 覆盖率工具的方式是检查我在浏览器中运行的测试有多少行 JS 代码被命中,从而使用代码覆盖率来改进我的测试覆盖率。 有人可以指导我使用 selenium webdriver 为测试运行捕获 JS 覆盖率的示例/工具。

【问题讨论】:

    标签: javascript code-coverage istanbul


    【解决方案1】:

    您可以尝试JSCover in manual,您可以找到如何将其与 selenium 集成。

    【讨论】:

    • 我试过 JSCover 并观察到几个铰链端: 1. JSCover 代理目前只支持 HTTP,不支持 HTTPS 2. 使用 HTTP 它不收集我的应用程序的覆盖率数据 3. 不确定是否最近维护了存储库
    • 此外,通过以下评估,我更倾向于使用 istanbul link 对此的任何帮助将不胜感激
    • > 2. 使用 HTTP 它不会收集我的应用程序的覆盖率数据 您的配置一定有问题。 github.com/tntim96/JSCover-samples 有工作示例。 > 3.不确定最近是否维护了存储库。最后一次发布是 2016 年 12 月 13 日(从今天算起 28 天前)。
    【解决方案2】:

    您需要像 nyc 这样的工具。获取您的 js 文件并运行类似

    纽约仪器

    在它们上,nyc 将修改 js 文件以记录覆盖率。在您的网站中使用这些修改后的文件。然后运行你的硒测试。在 selenium 测试结束时,您需要从 JS 文件中捕获数据并将其保存到 json 文件中。为此,我使用此代码。

    IJavaScriptExecutor js = (IJavaScriptExecutor)驱动程序; string coverageData = (string)js.ExecuteScript("return JSON.stringify(window.cov_h0rgge4zy);"); File.WriteAllText(@"C:\someDir\coverage\" + DateTime.Now.Ticks + ".json", "{\"someFile\":" + coverageData + "}");

    然后运行类似的东西

    纽约报告 html someCoverage.json

    你会得到覆盖率报告,html格式

    【讨论】:

      【解决方案3】:

      将生成的 .json 文件保存在 .nyc_output 目录中,然后运行 下面的命令。 纽约报告--reporter=html

      参考https://istanbul.js.org/docs/advanced/coverage-object-report/

      【讨论】:

        猜你喜欢
        • 2012-01-18
        • 2023-03-04
        • 1970-01-01
        • 2018-07-10
        • 2020-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多