【发布时间】:2021-07-14 22:33:57
【问题描述】:
我正在尝试使用 Github Actions 运行一套 Behat 测试。我已经配置了一个可以成功运行一些单元测试的工作流,但要运行我的 Behat 测试,我需要可以通过 HTTP 访问我的应用程序。
以下是我的工作流 yaml 文件的相关部分:
jobs:
behat:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: shivammathur/setup-php@verbose
with:
php-version: '7.4'
...
- name: Behat Tests
run: |
ACTION_BASE_PATH=`pwd`
"$ACTION_BASE_PATH"/bin/behat --config behat.github.yml --tags=ci
运行时,每次 Behat 尝试通过 http 访问应用程序时都会出现 curl 错误:
cURL error 7: Failed to connect to localhost port 80: Connection refused (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) (GuzzleHttp\Exception\ConnectException)
│
╳ Unable to access the response before visiting a page (Behat\Mink\Exception\DriverException)
这可能是因为 Github Actions 尚未配置为在 localhost 端口 80 上服务应用程序。上面引用的文件 behat.github.yml 将 Behat 配置为向 localhost 发出 http 请求。我原以为这将是一个常见的用例,具有简单的解决方案和丰富的文档。但是,我找不到有关配置 Github 操作以运行可通过 HTTP 访问的应用程序的相关文档,并且我开始怀疑我是否误解了有关 Github 操作功能的重要内容。
【问题讨论】:
-
不知道它在 github 操作中的情况如何,但假设应该是 web 服务器在某处运行,以便应用程序可以通过 http 访问。您可以尝试在另一个进程中运行 php 内置服务器。但我认为使用 docker 会方便得多。
标签: php github-actions behat