【问题标题】:How to implement the Music Metadata Or Music MetaData Browser npm plugin in Cypress V10?如何在 Cypress V10 中实现音乐元数据或音乐元数据浏览器 npm 插件?
【发布时间】:2022-08-17 10:06:50
【问题描述】:

我尝试在 Cypress 版本 10 中实现 Node 插件,但我做不到。

https://www.npmjs.com/package/music-metadata-browser#fetchurl-function

  1. 安装完成: npm install --save-dev music-metadata-browser npm install --save-dev util

  2. 在 plugin/index.js 中添加了以下行

    const musicMetadata = require(\'music-metadata-browser\');
    const util = require(\'util\');
    
    module.exports = (on, config) => {
      require(\'@cypress/code-coverage/task\')(on, config);
      on(\'task\', {
        validateAudioFormat(audioTrackUrl) {
          return new Promise((resolve, reject) => {
            musicMetadata.parseFile(audioTrackUrl, (err, data) => {
              if (err) {
                return reject(err);
              }
              return resolve(data);
            });
          });
        },
    
      });
    };
    
    1. 在 e2e/validateFile.cy.js 中添加了以下代码
    describe(\'Parsing File\', () => {
      it(\'Validating Audio File\', () => {
        const audioURL = \'cypress/fixtures/media/Patrikios.mp3\';
        console.log(\'url: \' +  audioURL);
        cy.task(\'validateAudioFormat\', audioURL).then(data => {
            const allData = Object.values(data);
            console.log(\'All data: \' + allData);
        });
    
    /******
        cy.on(\'validateAudioFormat\', (url) => {
          async () => {
            const metadata = await mm.fetchFromUrl(url);
            console.log(\'url: \' + url);
            console.log(util.inspect(metadata, { showHidden: false, depth: null }));
          };
        });
    *****/
      });
    });
    

    错误:

    CypressError: `cy.task(\'validateAudioFormat\')` failed with the following error: 
    
    The task \'validateAudioFormat\' was not handled in the setupNodeEvents method. The following tasks are registered: resetCoverage, combineCoverage, coverageReport
    
    Fix this in your setupNodeEvents method here: /opt/lampp/htdocs/project/cypress.config.js
    

    注释块错误:

    taskreadAudioFiles, cypress/fixtures/media/audios/valid/Beyond_Patrick_Patrikios.mp3
    CypressError
    cy.task(\'readAudioFiles\') timed out after waiting 60000ms
    

    任何人都可以在这种情况下提供帮助吗?

    谢谢!

    标签: npm cypress node-modules cypress-component-test-runner cypress-configuration


    【解决方案1】:

    您的项目是赛普拉斯 v9 配置和赛普拉斯 v10 测试的混合体。

    我想你已经超过 10 岁了,所以插件现在进入 cypress.config.js

    const { defineConfig } = require('cypress')
    const musicMetadata = require('music-metadata-browser');
    const util = require('util');
    
    module.exports = defineConfig({
      e2e: {
        setupNodeEvents(on, config) {
          
          require('@cypress/code-coverage/task')(on, config);
    
          on('task', {
            validateAudioFormat(audioTrackUrl) {
              return new Promise((resolve, reject) => {
                musicMetadata.parseFile(audioTrackUrl, (err, data) => {
                  if (err) {
                    return reject(err);
                  }
                  return resolve(data);
                });
              });
            },
          });
    
        },
      }
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-15
      • 1970-01-01
      • 2017-12-31
      • 2017-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多