我正在使用Codeception创建我的测试(虽然我是初学者,学习)。这包括现在的验收和单元测试。
我想将我的回购添加到Travis CI,这样我就可以在每次提交后自动执行测试过程并放置build-status标记。
我想问一下;
谢谢。
答案 0 :(得分:8)
是的,可以在Travis CI上运行Codeception测试,包括使用WebDriver运行的验收测试。
它是possible to run your tests with a real browser on Travis,但最简单的是使用无头浏览器,因为Travis在无头机器上运行。 PhantomJS非常适合这种情况,它预装了Travis CI的构建引导程序。
要使用PhantomJS运行测试,您需要在.yml
Codeception配置文件中配置这样的WebDriver模块:
modules:
config:
WPWebDriver:
url: 'http://127.0.0.1:8888'
browser: phantomjs
网址很重要。我发现尝试使用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
您当然需要将Codeception添加到项目的composer.json
文件中:
composer require --dev codeception/codeception
您还需要将上面的path/to/web/root
更改为您希望服务器的文档根目录的路径。
如果您希望看到针对WordPress运行WebDriver测试的工作演示,您可以查看this GitHub repo。
答案 1 :(得分:2)
我认为它可以做到,但是将所有东西粘在一起并不适合胆小的人。我认为可以做到的原因是CodeView本身就是在Travis上编写的。见https://travis-ci.org/Codeception/Codeception。我会在代码中联系人们并询问他们的想法。
或者您可以在构建日志中查看它们是如何执行此操作的,例如: https://travis-ci.org/Codeception/Codeception/jobs/14432638 看起来他们正在使用下载的独立selenium服务器运行无头。
Travis-ci有some information on how to run GUI tests。特别是,它们允许您使用sauce labs帐户并从那里运行分布式硒测试。
答案 2 :(得分: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