当前位置: 首页 > 知识库问答 >
问题:

Codeception验收测试在浏览器启动之前运行

史和泰
2023-03-14

当我运行Codeception测试时,有时在验收测试中,浏览器启动太晚,测试不会等待它启动,并且在浏览器启动之前通过的测试会出现错误:

[连接异常]无法在http://127.0.0.1:4444/wd/hub.连接到网络驱动程序请确保Selenium服务器或PhantomJS正在运行。

#1 Codeception\Subscriber\Module-

#2D:\path\Yii\basic\vendor\symfony\event dispatcher\EventDispatcher。菲律宾比索:212

#3 D:\path\Yii\Basic\供应商\Symfony\事件调度器\EventDispatcher.php:44

有一次浏览器根本没有启动。

我的命令:

C:\Windows\System32\cmd.exe /K "cd /D D:\path\Yii\basic && vendor\bin\codecept run"

接受一套yml:

class_name: AcceptanceTester
extensions:
    enabled:
        - Codeception\Extension\RunProcess:
            - java -jar -Dwebdriver.chrome.driver="D:/Selenium/chromedriver.exe" -Dwebdriver.gecko.driver="D:/Selenium/geckodriver.exe" "D:/Selenium/selenium-server-standalone-3.6.0.jar"
modules:
    enabled:
        - WebDriver:
            url: https://hotel.localhost/
            browser: chrome
        - Yii2:
            part: orm
            entryScript: index-test.php
            cleanup: false

协同感知。yml:

actor: Tester
paths:
    tests: tests
    log: tests/_output
    data: tests/_data
    helpers: tests/_support
settings:
    bootstrap: _bootstrap.php
    memory_limit: 1024M
    colors: true
modules:
    config:
        Yii2:
            configFile: 'config/test.php'
            cleanup: false

coverage:
    enabled: true
    whitelist:
        include:
            - models/*
            - controllers/*

先谢谢你。

共有1个答案

葛宪
2023-03-14

如本文所述,在RunProcess配置中添加一些睡眠。

要等待进程启动,请使用Hibernate选项。在这种情况下,您需要将配置指定为对象:

extensions:
    enabled:
        - Codeception\Extension\RunProcess:
            0: java -jar ~/selenium-server.jar
            1: mailcatcher
            sleep: 5 # wait 5 seconds for processes to boot
 类似资料:
  • 我正在使用phpStorm IDE以及composer和codeception在我的mac机器中编写selenium验收测试。但是我无法运行我的测试。 我开始我的硒独立罐和铬驱动器在我的mac机使用下面的命令。 java-Dwebdriver。铬。driver=“/Users/krishna/Downloads/chromedriverNewChrome”-jar selenium-server-

  • 问题内容: 因此,我已经开始创建一些使用Selenium RC来直接在浏览器中测试我的Web应用程序的Ruby单元测试。我正在将Selenum- Client 用于红宝石。我已经为所有其他selenium测试创建了基类。 这将创建许多SeleniumDriver实例,并且在每个实例上调用所有缺少的方法。这实际上是并行运行测试。 别人如何做到这一点? 这是我的实现: 这可以工作,但是如果一个浏览器失

  • 在本节中,我们将学习如何在IE浏览器上运行Selenium测试脚本。 Internet Explorer使用Internet Explorer驱动程序服务器实现WebDriver协议。 Internet Explorer驱动程序服务器是Selenium和Internet Explorer浏览器中的测试之间的链接。 下面来看看一个测试用例,尝试在IE浏览器中自动化测试以下场景。 启动IE浏览器。 打

  • 主要内容:Gecko Driver是什么?在本节中,我们将学习如何在Firefox浏览器上运行Selenium测试脚本。在继续本节之前,先来了解一下Gecko Driver的基础知识。 Gecko Driver是什么? Gecko一词指的是由Mozilla基金会开发的Gecko浏览器引擎,它用作为Mozilla浏览器的一部分。 Gecko Driver是Selenium和Firefox浏览器中测试之间的链接。 它充当W3C WebDriv

  • 在本节中,将学习如何在Chrome浏览器上运行Selenium测试脚本。 Chrome浏览器使用名为 的可执行文件实现WebDriver协议。此可执行文件在系统上启动服务器,而该服务器又负责在Selenium中运行测试脚本。 考虑一个测试用例,在Google Chrome浏览器中自动执行以下测试方案。 启动Chrome浏览器。 最大化浏览器。 打开URL:www.yiibai.com 向下滚动浏览

  • 我试图在浏览器堆栈上运行多个浏览器上的E2E测试,我参考了在量角器中的多个/并行浏览器上的E2E测试?和Internet Explorer Selenium量角器e2e测试 但每次我试着运行测试时都会犯错- 谁能告诉我什么是我做错了这里,而且我们使用gulp ti运行规范,但我的问题是它是说,甚至没有超出认证。