Travis-CI可以运行Codeception测试吗?

18

我正在使用 Codeception 创建我的测试(尽管我是初学者),这包括现在的验收和单元测试。

我想把我的存储库添加到 Travis CI 中,以便在每次提交后自动化测试过程并放置构建状态标记。

我想问:

  1. Travis-CI 能否运行 codeception 测试?
  2. Travis-CI 能否运行模拟浏览器的 codeception 接受测试?
  3. 如果两个答案都是否定的,还有其他能够实现此功能的 CI 工具吗?

谢谢。

3个回答

9

是的,在Travis CI上可以运行Codeception测试,包括使用WebDriver运行的验收测试。

在Travis上使用真实浏览器运行您的测试是可能的,但使用无头浏览器最简单,因为Travis正在运行无头机器。 PhantomJS非常适合此操作,并且已经预装在Travis CI的构建引导程序中。

要使用PhantomJS运行测试,您需要在.yml Codeception配置文件中像这样配置WebDriver模块:

modules:
    config:
        WPWebDriver:
            url: 'http://127.0.0.1:8888'
            browser: phantomjs

重要的是URL。我发现尝试使用“localhost”而不是“127.0.0.1”是行不通的。另外,如果您意外地省略了“http://”,那也行不通。您可以使用大多数“8***”端口,因为它们中的大多数都是开放的,但是当然您需要在该端口上运行Web服务器以提供静态文件或运行PHP应用程序。我发现最简单的方法是使用PHP内置的Web服务器。
您的“.travis.yml”文件可能如下所示:
# Travis CI configuration file.

language: php

php:
    - 5.6
    - 7.0

before_script:
    # Start up a web server.
    - php -S 127.0.0.1:8888 -t /path/to/web/root >/dev/null 2>&1 &
    # Start up the webdriver.
    - phantomjs --webdriver=4444 >/dev/null 2>&1 &
    # Install Codeception.
    # Doing this last gives the webdriver and server time to start up.
    - composer install --prefer-source

script:
    - vendor/bin/codecept run

当然,您需要将Codeception添加到项目的composer.json文件中:

composer require --dev codeception/codeception

你还需要更改上面的 path/to/web/root,改为你想要设置为服务器文档根目录的目录路径。
如果您想查看一个运行WebDriver测试WordPress的演示,请查看此GitHub存储库

2
我认为这是可行的,但将所有内容粘合在一起不会轻松。我认为它可以完成的原因是Codeception本身在Travis上进行了CI。请参见https://travis-ci.org/Codeception/Codeception。建议联系Codeception的人并询问他们的想法。
或者你可以在构建日志中查看他们是如何做到的,例如: https://travis-ci.org/Codeception/Codeception/jobs/14432638 看起来他们正在使用下载的独立Selenium服务器运行无头浏览器。
Travis-ci有关于如何运行GUI测试的相关信息。特别地,他们允许您使用Sauce Labs账户,并从那里运行分布式Selenium测试。

0
今天我遇到了这个问题,通过将 Codeception 添加到我的 composer.json 中解决了它:
"require-dev": {
    "codeception/codeception": "^2.1"
},

并在我的.travis.yml文件中引用它:

install:
    - composer self-update
    - composer install

before_script:
    - #Code that creates and seeds my database and so on

script: php vendor/codeception/codeception/codecept run

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接