涵盖IntelliJ中的e2e测试

时间:2018-10-17 08:49:25

标签: testing intellij-idea code-coverage e2e-testing istanbul

我使用以下方法手动检测了我的代码: istanbul instrument src --o temp --es-modules --config=.istanbul.yml

这是我的.istanbul.yml:

instrumentation: excludes: ['*.spec.js'] extensions: ['.js','.jsx']

一旦检测到,我将使用“运行于覆盖率”按钮在IntelliJ中使用Selenium运行e2e测试。

测试通过了,但最后只提供了* .e2e.js文件的覆盖率信息,而不是e2e测试正在运行的实际* .jsx文件的覆盖率信息。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

JavaScript是在浏览器中执行的,而不是由测试运行器执行的。因此,覆盖范围仅包括测试运行者使用的代码。您需要检测前端代码,然后将其发送到浏览器并从浏览器收集覆盖范围。

这是如何与伊斯坦布尔和硒一起工作的:

  
      
  1. 在伊斯坦布尔使用您的前端代码   仪器命令。 (据我所知,伊斯坦布尔乐器写道   插入代码到磁盘,而istanbul Cover则执行所有操作   内存。)
  2.   
  3. 而不是将原始JS代码发送到浏览器,而是发送   检测的JS代码。这里真的很棒,伊斯坦布尔   您完全不必手动修改源代码即可做到这一点   所有工作。伊斯坦布尔在浏览器中为我们完成了几乎所有工作,   自动。

  4.   
  5. 运行基于Selenium的测试,并针对每个人   测试中的驱动程序,运行一个钩子,它将发送覆盖率结果   从浏览器到后端测试过程。

  6.   
  7. 获得   测试过程中的覆盖数据,您可以随心所欲   它。在这种情况下,我们会将数据通过HTTP POST到服务器上   解释并显示覆盖率结果。

  8.   
  9. 就是这样!

  10.   
     

阅读全文:https://medium.com/@the1mills/front-end-javascript-test-coverage-with-istanbul-selenium-4b2be44e3e98

本文详细介绍了如何进行设置。