2017-08-25 79 views
1

我有一个奇怪的场景。我创建一个html页面,添加脚本标签。脚本标签包含UI组件的js文件,该组件完全使用react js开发。运行java selenium测试的JS组件的代码覆盖

我的HTML: enter image description here 我使用的是本地网络服务器来启动这个页面,能看到我的组件,在这种情况下,它是一个“模式”。

模态: enter image description here

我写一个Maven ENV检验这一模式的Java Selenium测试,并测试它没有任何问题。

我的要求是通过运行我的java selenium测试(或者甚至手动测试)来获取此组件的代码覆盖率。

这是可能的,可行的。我做了很多Google搜索,找不到任何适合的内容。

任何帮助最受赞赏。

+1

,如果您使用的是节点应用是可能的,在这里看到:https://medium.com/@the1mills/front-end-javascript-test-coverage-with-istanbul-selenium-4b2be44e3e98 我认为这如果您不使用节点/快递作为中间件,那么将会付出巨大的努力。因为如果使用快递,你可以使用伊斯坦布尔中间件 你可以尝试利用你的前端的开发预览覆盖,例如, https://开头lkrnac。net/blog/2014/04 /用量角器测量代码覆盖率/ – hypery2k

+0

我共享的第一个链接似乎很有趣,解决了我的问题。我会试一试并保持你的发布。再次感谢。 – aspiringqa

+0

@ hypery2k - 此问题已解决。我跟着文章,它真棒!非常感谢!! – aspiringqa

回答

1

总结,灵感来自上面发布的链接,但在一些简单的追踪的子弹。

  1. 添加伊斯坦布尔依赖于你的package.json

  2. 手动工具的js文件,运行以下命令

    istanbul instrument test.js >> test-instumented.js 
    
  3. 让你的文件访问此仪表文件,而不是的原始的js文件。

  4. 运行测试运行以查看您的页面加载没有任何问题。
  5. 现在对于实际运行,将此覆盖信息脚本添加到@AfterClass中,或者在所有测试运行之后以及关闭并退出webdriver之前添加。 enter image description here

  6. 现在coverage.json文件被转储所有的覆盖信息。

  7. 现在该生成html报告了。转到您的coverage.json目录并运行以下命令,然后按Enter:

    istanbul report 
    
  8. 这会产生一个名为覆盖目录,并在其中,你会发现lcov.info,你可以将它传递给sonarqube文件或者打开html文件来查看结果。

快乐的代码覆盖率。

相关问题