Dépendances : "@vue/cli-plugin-unit-jest" : "^4.5.13", "@vue/test-utils" : "^1.2.1", "vue - plaisanterie" : "^3.0.7"&Lt ;/p> ;
J'ai une application qui définit un alias (disons "foo") dans vue.config.js :
module.exports = { chainWebpack : (config) => //Définit le nom du projet comme alias config.resolve.alias.set('foo', __dirname); }, };Pour les instructions d'importation et les attributs src des balises HTML...
Dans main.js :
... importer l'application depuis 'foo/src/components/core/App' ; ...Dans ../src/core/App/index.vue:
Je sais que je peux utiliser moduleNameMapper dans jest.config.js, quelque chose comme :
'^foo(.*)$' : '
$1', Cependant, cela ne mappe pas les alias qui apparaissent dans l'attribut src d'une balise HTML. Existe-t-il un moyen pour que vue-jest interprète ces chemins de propriété via les paramètres de configuration ou d'autres moyens ?
Tout conseil est grandement apprécié.
Analyse d'URL dans SFC
Utilisation de chemins relatifs sans alias dansvue-jest
无法解析SFC中顶级块标签的src
URL,因此您需要在src/components/core/App/index.vue
:Analyse d'URL dans le contenu du modèle
vue-jest
使用@vue/component-compiler-utils
编译模板,但URL解析需要transformAssetUrls
选项。vue-jest
3.x不支持向@vue/component-compiler-utils
传递选项,但在4.0.0-rc.1中通过templateCompiler.transformAssetUrls
Configurationimplémentation.Même avec l'analyse d'URL activée, Vue CLI configure
Pour activer l'analyse d'URL :jest
surRenvoie une chaîne vide pour obtenir les médias derequire
, y compris les imagesjest
以返回空字符串以获取require
的媒体,包括图像。如果您的测试需要与正常解析的URL一起在生产环境中工作,您将需要一个模仿url-loader
. Si vos tests doivent fonctionner en production avec des URL normalement résolues, vous aurez besoin d'unconvertisseur Jest simulé pour url-loader. Le chargeur de configuration Vue CLI renvoie le nom de fichier analysé s'il est supérieur à 4 Ko ; sinon, il renvoie l'URL des données base64.Mise à niveau vers- 4 :
Créez le fichier suivant pour votre personnalisation
- qui sera utilisé plus tard ci-dessous :
Pour éviter d'écraser accidentellement les préréglages Jest par défaut de Vue CLI, utilisez un outil de fusion (tel que
Ajoutez une
- configuration dans
Modifiez l'attribut
- convertisseur pour traiter l'image. Cela nécessite de supprimer les autres convertisseurs d'images du préréglage Jest par défaut pour éviter les conflits.
Démo GitHubvue-jest
my-jest-url-loader
lodash.merge
) pour insérer une configuration personnalisée dans
jest.config.js
.lodash.merge
)在jest.config.js
Jest globalet définissez
templateCompiler.transformAssetUrls code >
.vue-jest
配置,设置templateCompiler.transformAssetUrls
transform
du préréglage de fusion et utilisez notretransform
属性,使用我们的my-jest-url-loader