JS code coverage with selenium tests

南楼画角 提交于 2021-01-29 03:11:52

问题


I’m new to the entire concept of capturing JS coverage. The way I intend to use JS coverage tool is to check how many lines of my JS code is being hit by my tests running in a browser, thus using code coverage to improvise my test coverage. Can somebody guide me to an example/tool of how to capture JS coverage for the test running using selenium webdriver.


回答1:


A tool like nyc is what you need. Take your js file(s) and run something like

nyc instrument

on them and nyc will modify the js files to record coverage. Use these modified files in your website. Then run your selenium tests. At the end of the selenium test, you need to capture the data from the JS files and save it to a json file. I use this code for that.

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

then run something like

nyc report html someCoverage.json

and you'll get the coverage report, html format




回答2:


You can try JSCover in manual you can find how to integrate it with selenium.




回答3:


keep generated .json file in .nyc_output directory then run below command. nyc report --reporter=html

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



来源:https://stackoverflow.com/questions/41544158/js-code-coverage-with-selenium-tests

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!