1

我的 cypress/plugins/index.js 文件看起来像这样,我知道只能有一个 module.exports,但我正在努力将 cypressBrowserPermissionsPlugin 和 getConfigurationByFile 添加在一起

const cucumber = require('cypress-cucumber-preprocessor').default
const { cypressBrowserPermissionsPlugin } = require('cypress-browser-permissions')
const path = require('path')
const fs = require('fs')
require('@applitools/eyes-cypress')(module);

function getConfigurationByFile(file) {
  const pathToConfigFile = path.resolve('cypress/config', `${file}.json`);
  return fs.readJson(pathToConfigFile);
}
const file = config.env.configFile || 'qa';

module.exports = (on, config) => {
  on('file:preprocessor', cucumber())
  config = cypressBrowserPermissionsPlugin(on, config)
  return config
  // I want to also return the getConfigurationByFile(file) function
}
4

1 回答 1

1

您需要将函数包装getConfigurationByFile任务中

function getConfigurationByFile(file) {
  const pathToConfigFile = path.resolve('cypress/config', `${file}.json`);
  return fs.readJson(pathToConfigFile);
}

module.exports = (on, config) => {
  on('file:preprocessor', cucumber());
  on('task', {
    getConfiguration (fileName) {
      const file = fileName || config.env.configFile || 'qa'; // filename defaults
      return getConfigurationByFile (file);
    }
  })
  config = cypressBrowserPermissionsPlugin(on, config);
  return config;
}

并像这样在测试中调用它

cy.task('getConfiguration', 'my-config-file').then(config => {
   ...
});

或使用默认文件名

cy.task('getConfiguration').then(config => {
   ...
});
于 2021-02-09T21:48:41.820 回答