【轉】Webpack 中配置的 alias 在 Mocha 測試用例中
背景
在日常開發中,有些模組層級太深,在使用的時候可能會寫成
import mod from '../../../../a/deep/folder/mod'
為了解決這種問題,我們使用 webpack 的 能力,對目錄進行命名:
{ resolve: { alias: { mod: path.resolve(__dirname, 'src/a/deep/folder/mod') } } }
在使用中,可以直接使用下面這種方式引入
import module from 'mod'
問題
蛋疼的地方來了
使用 Mocha 進行單元測試:
mocha --compilers js:babel-core/register test/specs/**/*Test.js
我們透過 Babel 進行編譯後測試,遇到了問題,Mocha 並不能讀取到 Webpack 內配置的 alias,所以一直提示找不到 mod 模組。
module.js:557 throw err; ^ Error: Cannot find module 'mod' at Function.Module._resolveFilename (module.js:555:15) at Function.Module._load (module.js:482:25) at Module.require (module.js:604:17) at require (internal/module.js:11:18) ...
解決
搜尋了各種方案,在一個不起眼的地方看到了一個方案,使用 Babel 外掛:
.babelrc 檔案
"plugins": [ [ "babel-plugin-webpack-aliases", { "config": "./webpack.config.test.js" } ] ]
在 Mocha 測試之前會透過 Babel 進行編譯,編譯時會透過 babel-plugin-webpack-aliases
外掛以支援 webpack 中的 alias。
其他解決方案
在 Mocha 測試之前,透過 webpack 進行預編譯。
版權宣告
本部落格文章均為 原創或翻譯,採用進行許可。
原文地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2310/viewspace-2809419/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- webpack的alias別名引用 在webstorm中點選不能跳轉?WebORM
- JDBC 在效能測試中的應用JDBC
- zsh 命令在 alias 中如何轉義 ' 字元(單引號)字元
- Webpack 中 css import 使用 alias 相對路徑WebCSSImport
- 軟體測試中的測試計劃和測試用例起到什麼作用?
- 單元測試在Unity中的應用Unity
- 搭建 vue2 單元測試環境(karma+mocha+webpack3)VueWeb
- BurpSuite在非Web應用測試中的應用UIWeb
- 單元測試 -- mocha + chaiAI
- 測試中,介面測試的必要性與介面測試的基礎用例設計
- 自動化測試在 Kubernetes Operator 開發中的應用:以 OpenTelemetry 為例
- 技術前沿:AI大模型在自動化測試中的應用例項AI大模型
- [譯] 快速,完整的 Mocha 測試指南
- 測試——水杯的測試用例
- AI技術在基於風險測試模式轉型中的應用AI模式
- 【vue系列】vue2.0 專案配置 Mocha 單元測試Vue
- 自動化測試在國際軟體測試中的應用
- 測試用例的方法
- 測試面試-測試用例面試
- 測試用例
- vue-cli 3.0配置webpack目錄別名aliasVueWeb
- Webpack 中css 如何 import 使用 alias別名 相對路徑WebCSSImport
- 手工測試用例與自動化測試用例的區別
- webpack中babel的配置問題WebBabel
- 【黑盒測試】測試用例的常用方法
- 在 WebStorm 中,配置能夠識別 Vue CLI 3 建立的專案的別名 alias @WebORMVue
- 前沿探索|AI 在 API 開發測試中的應用AIAPI
- 數字證書及其在安全測試中的應用
- 測試用例和測試方法
- QMl 中alias 的基本用法
- 測試用例—教室
- 【5】測試用例
- Mocha瀏覽器測試入門教程瀏覽器
- “探索性測試”在敏捷專案中的運用 | IDCF敏捷
- 基於LangChain手工測試用例轉App自動化測試生成工具LangChainAPP
- 基於LangChain手工測試用例轉Web自動化測試生成工具LangChainWeb
- 基於LangChain手工測試用例轉介面自動化測試生成工具LangChain
- 【功能測試】兩部電梯的測試用例