通过运行java selenium测试为JS组件编写代码

时间:2017-08-25 17:47:37

标签: javascript java reactjs code-coverage ui-automation

我有一个奇怪的场景。我创建一个html页面,向其添加脚本标签。脚本标记包含UI组件的js文件,该组件使用react js完全开发。

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

模态: enter image description here

我在maven环境中编写java selenium测试来测试这个模态,并且它没有任何问题地进行测试。

我现在的要求是通过运行我的java selenium测试(甚至手动测试)来获得该组件的代码覆盖率。

这是否可行,可行。我做了很多谷歌搜索,找不到合适的东西。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

摘要,灵感来自上面发布的链接,但有些人可以简单地遵循。

  1. 将istanbul依赖项添加到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. 这将生成一个名为coverage的目录,在其中您可以找到lcov.info文件,您可以将其传递给sonarqube或打开html文件以查看结果。

  9. 快乐的代码覆盖率。