【发布时间】:2017-05-23 11:40:14
【问题描述】:
我不熟悉捕获 JS 覆盖的整个概念。 我打算使用 JS 覆盖率工具的方式是检查我在浏览器中运行的测试有多少行 JS 代码被命中,从而使用代码覆盖率来改进我的测试覆盖率。 有人可以指导我使用 selenium webdriver 为测试运行捕获 JS 覆盖率的示例/工具。
【问题讨论】:
标签: javascript code-coverage istanbul
我不熟悉捕获 JS 覆盖的整个概念。 我打算使用 JS 覆盖率工具的方式是检查我在浏览器中运行的测试有多少行 JS 代码被命中,从而使用代码覆盖率来改进我的测试覆盖率。 有人可以指导我使用 selenium webdriver 为测试运行捕获 JS 覆盖率的示例/工具。
【问题讨论】:
标签: javascript code-coverage istanbul
【讨论】:
您需要像 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格式
【讨论】:
将生成的 .json 文件保存在 .nyc_output 目录中,然后运行 下面的命令。 纽约报告--reporter=html
参考https://istanbul.js.org/docs/advanced/coverage-object-report/
【讨论】: