后台进程的 cy.exec 超时

2024-01-03

我正在尝试使用启动服务器cy.exec并像这样后台处理:

cy.exec('nohup python -m my_module arg_1 &', { failOnNonZeroExit: false }).then(result => {
    if (result.code != 0) {
      throw new Error(`Execution of "${command}" failed
      Exit code: ${result.code}
      Stdout:\n${result.stdout}
      Stderr:\n${result.stderr}`);
    }
  })

但是,这会导致超时错误,就像进程在前台运行一样。我意识到启动服务器cy.exec是一种反模式,但我有一个非常特殊的情况,我需要为每个测试启动具有不同参数的服务器。 我认为通过后台进程我可以绕过超时要求cy.exec.

但是,如果这不是一个选项,那么这种情况的最佳实践是什么,即每个 cypress 测试启动不同的服务器?


您可以尝试使用 cypress 任务而不是“cy.excel”

例子 在你的 cypress/plugins/index.js 中

const startServer = async function (ExecuteCommandWithPath) {
    
    exec(ExecuteCommandWithPath,
        (error, stdout, stderr) => {
            console.log(stdout);
            console.log(stderr);
            if (error !== null) {
                console.log(`exec error: ${error}`);
                return false;
            }
            return true;
        });
};

module.exports = ( on, config ) => {
  on("task", {
PythonServerStatUp(ExecuteCommandWithPath) {

            return new Promise((resolve, reject) => {
                startServer(ExecuteCommandWithPath);
                resolve(false);
            });
        },
});
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

后台进程的 cy.exec 超时 的相关文章

随机推荐

  • 如何找出使用了哪个可绘制资源?

    我想知道运行来自 ldpi mdpi hdpi 或 xhdpi 的应用程序时使用了哪个可绘制资源 您应该能够按照所述获取设备的显示属性here https stackoverflow com a 3166582 1029225然后通过将结果
  • 无法使用最新的 Firebase 框架读取/写入 Nest Firebase 值

    我一直在尝试将 Nest 集成到我的 iOS 应用程序中 遵循有关用户身份验证的所有说明 然后调用 Nest API 我使用 Nest 的 iOS 示例应用程序作为参考 https github com nestlabs iOS NestD
  • Apache Camel 计时器:“周期”与“固定速率”

    period 和 fixedRate 一起的确切用法是什么 这真的有意义吗 因为如果我指定了 周期 值 那么无论如何计时器都会在该间隔后触发 所以 fixedRate 标志的确切用途是什么 我很困惑请帮助我 您可以在以下位置阅读 java
  • 如果 CSS“user-select=none”元素的文本位于元素之间,则该元素的文本将被复制

    看看这个片段 noselect webkit touch callout none iOS Safari webkit user select none Safari khtml user select none Konqueror HTM
  • 在 RDD[(String, Int)] 上 saveAsTextFile 时如何删除记录周围的括号?

    我在用着saveAsTextFile path 以便将输出保存为文本文件 以便稍后将结果导入数据库 输出看起来像这样 value1 value2 如何去掉括号 您可以尝试以下非常基本的操作 rdd map x gt x 1 x 2 save
  • 如何替换 therubyracer javascript 运行时

    我该如何更换therubyracer宝石 我真的被困住了 我们一直在使用therubyracer我们的 Rails 资产管道的 gem 然而 它使用的依赖项已经过期并且存在安全漏洞 最新版本0 12 3是从 2017 年 1 月 5 日开始
  • 在电脑上未安装python的情况下运行python脚本

    我创建了一些数据处理脚本 它们需要每天执行 但是PC的数量接近150台 我无法在所有PC上手动安装Python 所以我需要一种方法让这些在这些 Windows 系统上工作 我尝试使用 PyInstaller 创建 exe 并将其放置在服务器
  • 自动完成内的 InputLabelProps 不受尊重

    我正在尝试使标签在内部可供选择和复制Autocomplete组件通过设置InputLabelProps sx userSelect text inside renderInput 理想情况下 我希望可以单击或双击来选择标签文本 export
  • 访问 Silverlight DataTemplate 内的元素

    尽管已经有一些相关问题 但我无法找到以下问题的干净解决方案 如果我有一个被多次使用的数据模板 例如 TreeViewItem Header 模板 我如何才能仅更改某些 TreeView 项目的模板 例如 假设我的 TVI HeaderTem
  • 处理证书时发生未知错误

    我有一个自签名证书 我想在我的 websockets 服务器上使用它来处理来自 wss localhost 443 的请求 我从任何网络浏览器连接到服务器 但是 我似乎无法正确进行身份验证 每次我尝试通过 Advanced Rest Cli
  • Play Framework 2.2.1 (Java) 中的 AspectJ

    我想将 AspectJ Weaving 包含在 Play 2 2 1 项目中 我只找到一个答案解释如何将 AspectJ 添加到 Play 2 1 1 项目 https stackoverflow com a 16606135 346421
  • 如何在 UIAlertView 中对齐消息?

    我想知道如何设置警报视图的委托消息的对齐方式 任何人都有解决方案 请回复一些代码 这只是之前答案的稍微简化版本 但我喜欢保持简单 for UIView view in alert subviews if view class isSubcl
  • iPhone 5 及以下版本应用程序崩溃

    我发布了一个简单的游戏 可以在 iPhone 5s 6 6s 和 iPad 上正常运行 但当在 iPhone 5 5c 4S 或 4 上运行时 应用程序会在出现以下代码时崩溃 let delay Int arc4random uniform
  • Junit 断言双数组

    我如何断言两个数组doubles 包含相同的元素 有一些方法可以断言整数数组和其他基本类型包含相同的元素 但不适用于doubles JUnit 4 12 有 实际上它已经是 4 6 的一部分 这是 github 上可用的最旧版本 org j
  • 如何查明特定设备是否支持 SIM 硬件?

    我想根据 SIM 硬件是否存在来禁用我的应用程序中与 CALL 和 SMS 相关的功能 现在 初学者的方法是使用以下命令检查电话类型 if telephonyManager1 getPhoneType TelephonyManager PH
  • 使用带有 fields_for 的数组

    如何使用 fields for 迭代对象数组 全部相同模型 该数组包含由 current user 创建的对象 我目前有 p class fields p
  • 如何解决错误:在此服务器上找不到请求的地址 - CakePHP

    我在我的项目中使用 CakePHP 2 X 但陷入了困境 首先让你知道我使用表单实现了搜索功能POST方法 但为此我发现分页错误 过滤器将不支持下一页 所以我将表单方法更改为GET 现在工作正常 不完全是我所需要的 所有请求的数据都显示在
  • 将非拥有窗口始终设置在顶部 - 就像应用程序“Afloat”

    我设置了一个全局热键RegisterEventHotkey 当用户按下它时 它会获取当前聚焦的窗口CGWindowListCopyWindowInfo 然后我需要将它始终设置在顶部 如果当前窗口在我的进程中 我正在从中执行代码 我可以简单地
  • React 和 Material UI:如何只扩展一张卡

    我使用 React 和 Material UI 来显示一些映射的卡片 当我尝试扩展一张卡时 所有卡都会同时扩展 我发现我必须在 handleExpandClick 函数中传递一个索引 但仍然不起作用 也许我犯了某种错字 我发现这个问题单击展
  • 后台进程的 cy.exec 超时

    我正在尝试使用启动服务器cy exec并像这样后台处理 cy exec nohup python m my module arg 1 failOnNonZeroExit false then result gt if result code