如何使用vue / cli进行赛普拉斯单元测试

mel*_*ner 5 unit-testing vue.js cypress

我正在使用为赛普拉斯e2e测试配置的vue / cli 3。e2e测试方案工作正常,但我也希望使用赛普拉斯进行单元测试。我安装了cypress-vue-unit-test,但是在加载单个组件(使用mountVue)时,cypress无法解释Vue语法(等)。

我想我必须添加配置,以便在赛普拉斯捆绑文件时在预处理器阶段使用正确的Web Pack加载器。由于项目中没有Web Pack配置文件,因此我无法弄清楚如何完成此操作,而且我不确定如何修改预配置的设置。谁能指导我?

mel*_*ner 2

谢谢照片,你为我指明了正确的方向。解决方案是将配置放在包含以下内容的tests/e2e/plugins/index.js中(可能可以改进):



    const webpack = require("@cypress/webpack-preprocessor");
    const VueLoader = require("vue-loader/lib/plugin");

    const webpack_vue_cypress_config = {
      webpackOptions: {
        module: {
          rules: [
            {
              test: /\.vue$/,
              loader: "vue-loader"
            },
            {
              test: /\.css$/,
              use: ["vue-style-loader", "css-loader"]
            }
          ]
        },
        resolve: {
          extensions: [".js", ".vue", ".json"],
          alias: {
            vue$: "vue/dist/vue.esm.js",
            "@": "../../"
          }
        },
        plugins: [new VueLoader()]
      },
      watchOptions: {}
    };

    module.exports = (on, config) => {
      on("file:preprocessor", webpack(webpack_vue_cypress_config));
      return Object.assign({}, config, {
        fixturesFolder: "tests/e2e/fixtures",
        integrationFolder: "tests/e2e/specs",
        screenshotsFolder: "tests/e2e/screenshots",
        videosFolder: "tests/e2e/videos",
        supportFile: "tests/e2e/support/index.js"
      });
    };

Run Code Online (Sandbox Code Playgroud)