javascript - 赛普拉斯 - 执行“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))
}
解决方案
我认为这是npm
在混淆文件名的 Windows 上的问题,因为npm
试图将脚本作为二进制文件运行,而不是从./node_modules/.bin
.
所以,我建议,作为第一次尝试,如果可以的话,将 的名称更改cypress.js
为cypress
. 我认为这可以解决您的问题。
如果没有,作为一种解决方法.JS
,从PATHEXT
环境变量中删除并重新启动正在运行脚本的进程,包括您的 IDE(如果适用)。
希望它有效。
推荐阅读
- xamarin.forms - Xamarin Forms:日期选择器未在更改时调整全宽
- java - 无法在 Java Android 中使用 dagger2 在片段中注入依赖项
- c# - Socket 的扩展方法 'ReceiveAsync' 的内存泄漏!
- javascript - 在反应中使css特定于404错误页面
- bash - ( Bash - Mercurial ) 使用 Mercurial Hook 启用 bash 脚本的执行问题?
- javascript - 反应片段序列化。错误:无法将符号值转换为字符串
- android - 在 Kotlin 中未调用 Cognito signUpInBackground 回调
- sql-server - 如何在桥梁中考虑时区
- python - python填写一个html表单
- angularjs - SpringBoot Websocket 错误 - osmsbDefaultSubscriptionRegistry:GenericMessage 中没有目的地