提问人:Medvedscak 提问时间:10/19/2023 最后编辑:Medvedscak 更新时间:11/13/2023 访问量:61
无法在组件测试中使用导入别名
Cannot use import alias in component tests
问:
我正在尝试使用 WebdriverIO、Mocha 和 TypeScript 进行简单的 React 组件测试。我遇到了一个与在 WebdriverIO 中使用导入别名特别相关的问题。
我有简单的模板组件,其中一个使用别名导入另一个组件:
// Comp1.tsx:
import Comp2 from '@app/components/comp2/Comp2';
因此,当我执行仅呈现组件的测试时:
/// <reference types="@wdio/globals/types" />
import React from 'react'
import { render } from '@testing-library/react'
import Comp1 from '../src/components/Comp1'
describe('Test', () => {
it('should render a component', async () => {
render(<Comp1 />)
})
})
我收到错误:
Error: Test failed due to the following error: [plugin:vite:import-analysis] Failed to resolve import "@app/components/comp2/Comp2" from "src/components/Comp1.tsx". Does the file exist?
组件中的导入是正确的,应用程序可以毫无错误地启动,因此这只是 WebdriverIO 配置中的一个问题。
这是我的:tsconfig.json
"baseUrl": "./",
"paths": {
"@app/*": ["src/*"]
}
这是我的一部分:wdio.conf.ts
mochaOpts: {
ui: 'bdd',
timeout: 6000000,
// requireModule: ['tsconfig-paths/register']
},
我找到了这篇关于在 WebdriverIO 中使用别名的文章,我尝试按照此处的建议使用。tsconfig-paths/register
当我取消注释 in 时,出现错误:requireModule
wdio.conf.ts
TypeError: self[opt] is not a function\n' +
[0-0] ' at http://localhost:51604/node_modules/mocha/browser-entry.js:161:18\n'
注意:即使我不使用任何组件导入,也会发生错误,这只是关于它本身。requireModule: ['tsconfig-paths/register']
如何在 WebdriverIO 中使用导入别名?不幸的是,他们的文档中没有任何内容。
UPD1:我尝试将别名添加到网络包配置中,如下所示:
resolve: {
extensions: ['.js', '.jsx', '.json', '.ts', '.tsx'],
alias: {
"@app/*": ["src/*"],
},
},
它没有影响任何事情
答:
0赞
Medvedscak
11/13/2023
#1
添加 vite 配置有所帮助。我不确定为什么它没有添加到wdio安装中,或者至少没有在任何地方记录
评论
["src/*"]