Ari*_*ona 17 testing travis-ci codeception
我正在使用Codeception创建我的测试(虽然我是初学者,学习).这包括现在的验收和单元测试.
我想将我的repo添加到Travis CI,这样我就可以在每次提交后自动执行测试过程并放置build-status标记.
我想问一下;
谢谢.
是的,可以在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非常重要.我发现尝试使用localhost而127.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仓库.
我认为这是可以做到的,但是将所有东西粘在一起并不适合胆小的人。我认为它可以做到的原因是代码接收本身是在 Travis 上进行的。请参阅https://travis-ci.org/Codeception/Codeception。我会联系 Codeception 的人员并询问他们的想法。
或者您可以在构建日志中查看他们是如何执行此操作的,例如: https: //travis-ci.org/Codeception/Codeception/jobs/14432638 看起来他们正在使用下载的独立 selenium 服务器进行无头运行。
Travis-ci 有一些关于如何运行 GUI 测试的信息。特别是,它们允许您使用酱汁实验室帐户并从那里运行分布式硒测试。