使用 vue 和 jest 内联测试 svg [英] Using vue and jest to testing svg inline

查看:30
本文介绍了使用 vue 和 jest 内联测试 svg的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在代码中使用内联图像时测试视图有问题'src/assets/icons/circle-small.svg?inline'

我有版本:

<前>- babel-jest:23.6.0- Vue:2.6.10

配置:

Vue CLI:

const svgRule = config.module.rule('svg');svgRule.oneOf('inline').use('vue-svg-loader').loader('vue-svg-loader').end();

玩笑配置:

 moduleFileExtensions: ['js','vue',],转变: {'^.+\\.vue$': 'vue-jest','^.+\\.js$': '/babel-jest','.+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2|svg)$': 'jest-transform-stub',},模块名称映射器:{'^@/(.*)$': '/src/$1',},

我在视图中导入:

从'@/assets/icons/img.svg?inline'导入Img;

我收到配置错误:

无法定位模块@/assets/icons/circle-small.svg?inline 映射为:/some/src/assets/icons/circle-small.svg?inline.请检查这些条目的配置:{模块名称映射器":{"/^@\/(.*)$/": "/some/src/$1"},解析器":空}

当我导入内联图像时,我在为案例配置测试时遇到问题.谁能知道我还应该配置什么或使用什么库?

解决方案

我找到了解决方案,修改正则表达式就够了

这是错误的:

'.+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2|svg)$': 'jest-transform-stub',

这是正确的:

'.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)(\\?inline)?$': 'jest-transform-存根',

I have problem with testing view when I use image inline in code 'src/assets/icons/circle-small.svg?inline'

I have versions:

- babel-jest: 23.6.0
- vue: 2.6.10

Configuration:

Vue CLI:

const svgRule = config.module.rule('svg');
svgRule.oneOf('inline').use('vue-svg-loader').loader('vue-svg-loader').end();

Jest config:

  moduleFileExtensions: [
    'js',
    'vue',
  ],
  transform: {
    '^.+\\.vue$': 'vue-jest',
    '^.+\\.js$': '<rootDir>/babel-jest',
    '.+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2|svg)$': 'jest-transform-stub',
  },
  moduleNameMapper: {
    '^@/(.*)$': '<rootDir>/src/$1',
  },

I import in view:

import Img from '@/assets/icons/img.svg?inline';

I getting configuration error:

Could not locate module @/assets/icons/circle-small.svg?inline mapped as:
/some/src/assets/icons/circle-small.svg?inline.

Please check your configuration for these entries:
{
  "moduleNameMapper": {
    "/^@\/(.*)$/": "/some/src/$1"
  },
  "resolver": null
}

I have a problem with configuring tests for the case when I import inline image. Can anyone know what else i should to configure or what library to use?

解决方案

I found a solution, it was enough to modify regex

this was wrong:

'.+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2|svg)$': 'jest-transform-stub',

and this is correct:

'.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)(\\?inline)?$': 'jest-transform-stub',

这篇关于使用 vue 和 jest 内联测试 svg的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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