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

Ari*_*ona 17 testing travis-ci codeception

我正在使用Codeception创建我的测试(虽然我是初学者,学习).这包括现在的验收和单元测试.

我想将我的repo添加到Travis CI,这样我就可以在每次提交后自动执行测试过程并放置build-status标记.

我想问一下;

  1. Travis-CI可以运行代码测试吗?
  2. Travis-CI可以运行模拟浏览器的代码验收测试吗?
  3. 如果两个答案都不是,那么还有其他CI工具吗?

谢谢.

J.D*_*.D. 8

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

可能与特拉维斯一个真正的浏览器中运行的测试,但它是最容易使用无头浏览器,因为Travis是一个无头的机器上运行.PhantomJS非常适合这种情况,它预装了Travis CI的构建引导程序.

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

modules:
    config:
        WPWebDriver:
            url: 'http://127.0.0.1:8888'
            browser: phantomjs
Run Code Online (Sandbox Code Playgroud)

URL非常重要.我发现尝试使用localhost127.0.0.1不是工作.此外,如果你不小心遗漏了http://,那也无济于事.您可以使用大多数8***端口,因为大多数端口都是打开的,但当然您需要在该端口上运行Web服务器来提供静态文件或运行PHP应用程序.我发现,最简单的方法是使用PHP的内置网络服务器.

您的.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
Run Code Online (Sandbox Code Playgroud)

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

composer require --dev codeception/codeception
Run Code Online (Sandbox Code Playgroud)

您还需要将path/to/web/root上面的内容更改为您希望服务器文档根目录所在的目录的路径.

如果你想看到一个运行WebDriver测试的工作演示针对WordPress,你可以查看这个GitHub仓库.


flu*_*lup 2

我认为这是可以做到的,但是将所有东西粘在一起并不适合胆小的人。我认为它可以做到的原因是代码接收本身是在 Travis 上进行的。请参阅https://travis-ci.org/Codeception/Codeception。我会联系 Codeception 的人员并询问他们的想法。

或者您可以在构建日志中查看他们是如何执行此操作的,例如: https: //travis-ci.org/Codeception/Codeception/jobs/14432638 看起来他们正在使用下载的独立 selenium 服务器进行无头运行。

Travis-ci 有一些关于如何运行 GUI 测试的信息。特别是,它们允许您使用酱汁实验室帐户并从那里运行分布式硒测试。