【问题标题】:Cannot find module 'components/layouts/default/Banner' from 'test/banner.test.js'无法从“test/banner.test.js”中找到模块“components/layouts/default/Banner”
【发布时间】:2021-09-30 23:11:10
【问题描述】:

我正在尝试让 Jest 与我的 Nuxt 项目一起工作,并且我已经对其进行了设置,以便它可以正常运行测试,但是当我的组件位于子文件夹(或更深)中时,我收到以下错误。

Cannot find module 'components/layouts/default/Banner' from 'test/banner.test.js'

我怀疑这与我配置 Jest 的方式有关,但因为我对 Jets 相当陌生,所以我不知道那是什么。这是我的 jest.config 文件

module.exports = {
  setupFiles: ['<rootDir'>/jest.setup.js'], 
  moduleNameMapper: {
    '^@/(.*)$': '<rootDir>/$1',
    '^~/(.*)$': '<rootDir>/$1',
    '^vue$': 'vue/dist/vue.common.js'
  }, 
  moduleFileExtensions: ['js', 'vue', 'json'], 
  testPathIgnorePatterns: ['/dist/', '/node_modules/'], 
  transform: {
    '^.+\\.js$': '<rootDir>/node_modules/babel-jest',
    '^.+\\.(vue)$': '<rootDir>/node_modules/vue-jest'
  }
  transformIgnorePatterns: ['<rootDir>/node_modules/(?!vuetify)'], 
  collectCoverage: true, 
  collectCoverageFrom: [
    '<rootDir>/api/**/*.js',
    '<rootDir>/components/**/*.vue',
    '<rootDir>/pages/**/*.vue',
    '<rootDir>/store/**/*.js'
  ], 
  verbose:true
}

这是我在名为 banner.test.js 的测试文件夹中的玩笑测试

import {shallowMount} from '@vue/test-utils';
import Banner from 'components/layouts/default/Banner';

let wrapper = null;

beforeEach(()=>{
  wrapper = shallowMount(Banner, {
   propsData:{
     text: 'test text'
    }
  })
})

it('test text', ()=> {
   expect(wrapper.find('.bannerText').toBe('test text')
})

【问题讨论】:

    标签: vue.js vuejs2 jestjs nuxt.js


    【解决方案1】:

    试试这个

    import Banner from '@/components/layouts/default/Banner';
    

    【讨论】:

    • 是的,我只是在您发布后才发现这一点。由于某些奇怪的原因,在 VS Code 中进行导入时,它不想在开头添加“@”。
    猜你喜欢
    • 2021-10-17
    • 1970-01-01
    • 2020-11-06
    • 2018-11-19
    • 1970-01-01
    • 2018-07-24
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多