我正在使用 Codeception 创建我的测试(尽管我是初学者),这包括现在的验收和单元测试。
我想把我的存储库添加到 Travis CI 中,以便在每次提交后自动化测试过程并放置构建状态标记。
我想问:
- Travis-CI 能否运行 codeception 测试?
- Travis-CI 能否运行模拟浏览器的 codeception 接受测试?
- 如果两个答案都是否定的,还有其他能够实现此功能的 CI 工具吗?
谢谢。
我正在使用 Codeception 创建我的测试(尽管我是初学者),这包括现在的验收和单元测试。
我想把我的存储库添加到 Travis CI 中,以便在每次提交后自动化测试过程并放置构建状态标记。
我想问:
谢谢。
是的,在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
# 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
,改为你想要设置为服务器文档根目录的目录路径。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