npm - 在赛普拉斯测试自动化中更改 baseUrl(设置为 null)
问题描述
我需要在 cypress.json 文件中设置 baseUrl 以避免在 cy.visit() 中不必要的页面重新加载并在某些测试期间覆盖 baseUrl。
柏树.json
{
"baseUrl": "https://dev.testhub.io/"
}
测试步骤
- 通过单击 UI 中的示例下载按钮下载示例
- 使用系统命令(exec)解压缩下载的示例
- 单击 UI 中的复制按钮以复制配置值
- 将复制的配置值粘贴到解压缩示例中的文件中
测试规范.ts
it("sample test",
function () {
Cypress.config('baseUrl', null);
cy.log("logvalue" +Cypress.config().baseUrl);
appQuickStart.downloadSample("java");
appQuickStart.unzipSample(sampleDownloadDirectory, sampleJavaAppDownloadLocation);
appQuickStart.clickCopyConfigsButtonFromUI();
appQuickStart.pasteCopiedConfigToClipboard(sampleJavaAppExtractLocation);
});
pasteCopiedConfigToClipboard 方法用于将配置复制到剪贴板,然后将其写入文件 /src/config.json
static pasteCopiedConfigToClipboard(sampleAppLocation){
cy.wait(2000);
cy.task("getClipboard").then((value) => {
cy.writeFile(sampleAppLocation + "/src/config.json", value);
cy.log("Before copy to config file" + value);
cy.wait(10000);
cy.log("After write to config file" + value);
cy.readFile(sampleAppLocation + "/src/config.json").then((text) =>{
});
});
}
clickCopyConfigsButtonFromUI()
static clickCopyConfigsButtonFromUI() {
cy.get(".application-sample-config-editor .copy").click({ force: true });
cy.wait(7000);
}
我在 cypress.json 文件中如上所述设置了 baseUrl。当它从那里设置的测试从 appQuickStart.pasteCopiedConfigToClipboard() 失败时,它将调用任务以通过任务将一些内容复制到剪贴板。我用于复制到剪贴板的插件是https://www.npmjs.com/package/clipboardy。
然后我尝试在执行此方法的 it() 中将 baseUrl 设置回 null。测试仍然在同一步骤失败。在我添加的日志中,它显示 baseUrl 设置为 null。
如果我从 cypress.json 中删除 baseUrl 配置并执行测试,那么测试将执行而不会出现任何故障。
将 cypress.json 中的 baseurl 设置为剪贴板等插件以使其失败时是否有任何限制。
感谢您对此的投入
解决方案
推荐阅读
- python - 正则表达式表示一个字母后跟空格和引号 (")
- javascript - 无法在谷歌云计算实例上运行 pm2
- swift - 为什么选择自动关闭而不是字符串文字?
- python - 将用户 input() 从 main() func 传递到下一个函数中的字符串
- angular - 为什么我的 Angular Spa dist 文件请求由 Asp net Core 返回 index.html?
- php - Elasticsearch - 2019 年按嵌套字段排序
- image-processing - 使用 skimage.color.gray2rgb 会产生错误的输出图像
- python - matplotlib 中的术语 viridis(用于颜色图)从何而来?
- sql - SQL中两个查询的合并结果
- clojure - 使用宏动态生成 reify 子句