You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过shopware-docker配置Shopware 6自定义插件Jest单元测试环境

为Shopware 6自定义插件配置Jest测试环境(基于shopware-docker)

一、先理清shopware-docker的模块含义

  • Module: base:所有Shopware版本通用的基础环境模块,负责提供Docker运行的核心依赖(如Nginx、MySQL等),是必须安装的基础模块。
  • Module: classic:仅针对Shopware 5的专属模块,适配Shopware 5的架构与运行需求,Shopware 6用户不需要安装。
  • Module: platform:专门适配Shopware 6的模块,因为Shopware 6采用Platform架构,Shopware 6环境必须搭配base + platform模块使用。

确认自身安装的模块

执行宿主机命令:

swdc module list

或者查看shopware-docker的配置文件(路径通常为~/.config/shopware-docker/config.json),在modules字段中可以看到已安装的模块列表。

二、解决Jest找不到测试文件的问题

1. 确保测试文件的路径与命名符合规范

自定义插件的Vue测试文件必须放在插件目录的以下路径:

<你的插件目录>/src/Resources/app/administration/test

文件名需要匹配Jest的默认规则,比如:

  • YourComponent.spec.js
  • YourComponent.test.js

2. 指定测试路径执行admin-jest命令

swdc admin-jest默认会扫描Shopware核心的测试文件,要让它识别自定义插件的测试,需要显式指定插件的测试目录:

swdc admin-jest <project-name> -- <你的插件目录>/src/Resources/app/administration/test

(注意--是分隔符,用来传递参数给容器内的Jest命令)

3. 为插件添加自定义Jest配置(可选)

如果需要更灵活的测试配置,可以在插件根目录创建jest.config.js文件,示例配置:

module.exports = {
  rootDir: './src/Resources/app/administration',
  testMatch: [
    '<rootDir>/test/**/*.spec.js',
    '<rootDir>/test/**/*.test.js'
  ],
  moduleNameMapper: {
    '^@shopware-ag/admin-extension-sdk$': '<rootDir>/node_modules/@shopware-ag/admin-extension-sdk',
    '^vue$': 'vue/dist/vue.common.js'
  },
  moduleFileExtensions: ['js', 'vue'],
  transform: {
    '^.+\\.js$': 'babel-jest',
    '^.+\\.vue$': 'vue-jest'
  }
};

然后执行命令时指定配置文件:

swdc admin-jest <project-name> -- --config=<你的插件目录>/jest.config.js

三、解决composer run admin:create:test命令不存在的问题

这个命令是Shopware核心的Composer脚本,不能直接在宿主机执行,需要通过shopware-docker进入容器内的项目环境执行:

swdc exec <project-name> composer run admin:create:test

或者先进入容器终端:

swdc ssh <project-name>

然后在容器内的项目根目录执行:

composer run admin:create:test

内容的提问来源于stack exchange,提问作者rammi22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 07:15:43