首页 > 解决方案 > 赛普拉斯 - 执行“cypress open”时出错

问题描述

我有一个带有 node、cypress、mocha、mochawesome 和 mochawesome-merge 的测试框架,如下github repo

在此处输入图像描述

在我的 package.json 我有两个脚本作为

`"scripts": {
    "cy": "./node_modules/.bin/cypress open",
    "cy_test": "node cypress.js"
  },`

如果我npm run cy_test在无头状态下运行它可以正常工作,但如果我运行npm run cy我会收到以下错误:

在此处输入图像描述

但是如果我从我的项目中删除 cypress.js,那么它会按预期工作。

cypress.js

const cypress = require('cypress')
const marge = require('mochawesome-report-generator')
const { merge } = require('mochawesome-merge')

const currRunTimestamp = getTimeStamp();

const mergedReport = {
    reportDir: 'mochawesome-report',
}

const finalReport = {
    reportDir: 'reports',
}

cypress.run({
    reporter: 'mochawesome',
    reporterOptions: {
        reportDir: 'mochawesome-report',
        overwrite: false,
        html: true,
        json: true
      }
    }).then(
    () => {
        generateReport()
    },
    error => {
        generateReport()
        console.error(error)
        process.exit(1)
    }
)

function generateReport(options) {
    return merge(mergedReport).then(report => marge.create(report, finalReport))
}

标签: javascriptnode.jswindowsnpmcypress

解决方案


我认为这是npm在混淆文件名的 Windows 上的问题,因为npm试图将脚本作为二进制文件运行,而不是从./node_modules/.bin.

所以,我建议,作为第一次尝试,如果可以的话,将 的名称更改cypress.jscypress. 我认为这可以解决您的问题。

如果没有,作为一种解决方法.JS,从PATHEXT环境变量中删除并重新启动正在运行脚本的进程,包括您的 IDE(如果适用)。

希望它有效。


推荐阅读