SonarQube 与 Jest 单元测试 [英] SonarQube with Jest Unit Tests

查看:43
本文介绍了SonarQube 与 Jest 单元测试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在尝试找出如何使用 Jest 单元测试.net 单元测试 来填充 SonarQube.

I've been trying to find out how to populate SonarQube with both my Jest Unit Tests and the .net Unit Tests.

我有一个本地版本的 SQ 6.7 以及所有最新版本的 Javascript 和 C# 插件.

I have a local version of SQ 6.7 and all the latest versions of the Javascript and C# Plugins.

说到 Jest,我有 sonar-jest-reporter 导出 test-report.xml 文件,同时生成 lcov.info 文件.

When it comes to Jest, I have the sonar-jest-reporter to export a test-report.xml file, and also have the lcov.info file being generated.

SonarQube 能够读取 lcov.info 并且我看到覆盖率 %,但无论我设置为 include/exclude 什么,或测试路径,它不会显示与源文件关联的测试.

SonarQube is able to read the lcov.info and I see a coverage %, but no matter what I set as include/exclude, or tests path, it will not show the tests associated with the source file.

文件结构全部为.js.test.js与各个模块在同一个目录下.

The file structure is all .js and the .test.js are in the same directory with each module.

任何帮助我指出正确的方向,或者遇到并克服这个问题的其他人,我们将不胜感激.

Any help with pointing me in the correct direction, or others who have encountered and overcome this issue that would be appreciated.

推荐答案

看起来我已经找到了让它工作的方法.诀窍是让 sonar.sourcessonar.tests 都指向同一个目录(因为我们在同一个目录中有测试和源代码)然后使用 sonar.tests.inclusions 以模式匹配具有 .test.js.spec.js 扩展名的测试文件.

Looks like I've figured out the way to make it work. The trick is to have both sonar.sources and sonar.tests point to same directory (because we have both tests and source in the same directory) then use sonar.tests.inclusions to pattern match test files with .test.js or .spec.js extension.

这是一个示例 sonar-project.properties,假设如下:

Here's a sample sonar-project.properties which assumes the following:

  1. src/components/Foo/Foo.jsx 主要组件.
  2. src/components/Foo/Foo.spec.jsx测试文件.
  1. src/components/Foo/Foo.jsx the main component.
  2. src/components/Foo/Foo.spec.jsx the test file.

# Source
sonar.sources=src
# Where to find tests file, also src
sonar.tests=src
# But we get specific here
# We don't need to exclude it in sonar.sources because it is automatically taken care of
sonar.test.inclusions=src/**/*.spec.js,src/**/*.spec.jsx,src/**/*.test.js,src/**/*.test.jsx

# Now specify path of lcov and testlog
sonar.javascript.lcov.reportPaths=coverage/jest/lcov.info
sonar.testExecutionReportPaths=coverage/jest/testlog.xml

现在您的测试文件也会显示出来.

Now your test files will also show up.

更多信息在这里

这篇关于SonarQube 与 Jest 单元测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆