在我的构建脚本中,我需要评估 Cypress 配置文件。我正在使用以下脚本:
let appdata = process.env.LOCALAPPDATA;
let version = `11.0.1`;
let src = `${appdata}/Cypress/Cache/${version}/Cypress/resources/app/node_modules/@packages/data-context/src`;
const DataContext = require(`${src}/DataContext.js`).DataContext;
const ProjectConfigManager = require(`${src}/data/ProjectConfigManager.js`).ProjectConfigManager;
(async() => {
const ctx = new DataContext({
schema: null,
schemaCloud: null,
modeOptions: "run",
appApi: {},
localSettingsApi: {},
authApi: {
} ,
configApi: {
},
projectApi: {
} ,
electronApi: {
} ,
browserApi: {
},
})
let configManager = new ProjectConfigManager({
ctx,
configFile: 'C:\\work\\sample\\sample.config.ts',
projectRoot: 'C:\\work\\sample',
handlers: [],
hasCypressEnvFile: false,
eventRegistrar: null/*new EventRegistrar()*/,
onError: (error) => {},
onInitialConfigLoaded: () => {},
onFinalConfigLoaded: () => Promise.resolve(),
refreshLifecycle: () => Promise.resolve(),
})
configManager.configFilePath = "sample.config.ts"
configManager.setTestingType('e2e')
let cfg = await configManager.getConfigFileContents()
console.log(JSON.stringify(cfg));
})();
Run Code Online (Sandbox Code Playgroud)
它适用于Cypress 10版本。然而,Cypress 11引入了一些破坏此脚本的更改。尽管我调整了路径,但仍然无法使其再次工作。目前它失败并出现以下错误:
Error: Cannot find module 'C:\Users\mbolotov\AppData\Local\Cypress\Cache\11.0.1\Cypress\resources\app\node_modules\graphql\index'. Please verify that the package.json has a valid "main" entry
Run Code Online (Sandbox Code Playgroud)
如何解决此问题(无需更改 Cypress 安装)?
或者
还有其他方法可以评估赛普拉斯配置文件(例如从命令行)并获取其值吗?
我不清楚确切的用法,但做出一些假设 -/scripts项目文件夹中的 nodejs 脚本可以使用 Cypress 模块 API 编译和解析配置。
它需要一个测试才能运行,可以从脚本内部生成“空测试”。
注意,空测试必须符合项目的规范模式(下面是 std .cy.js)
const cypress = require('cypress')
const fs = require('fs')
fs.writeFileSync('../cypress/e2e/null-test.cy.js', 'it("", ()=>{})')
cypress.run({
project: '..',
spec: '../cypress/e2e/null-test.cy.js',
quiet: true
}).then(results => {
if (results.status === 'failed') {
console.log(results)
} else {
console.log(results.config.resolved) // output resolved config
}
})
Run Code Online (Sandbox Code Playgroud)
我没有尝试复制您代码中的所有内容,因为它使用赛普拉斯内部结构并且未公开记录。
| 归档时间: |
|
| 查看次数: |
176 次 |
| 最近记录: |