Yii2测试模块据官方文档目前还处于开发阶段,基本的运行如下。补充翻译自文件:tests/README.md
此目录包含高级应用程序的各种测试。
测试目录codeception
是用Codeception PHP Testing Framework开发的.
创建和设置高级应用程序后,请按照以下步骤准备测试:
如果没有安装 Codeception 先安装:
composer global require "codeception/codeception=2.0.*" "codeception/specify=*" "codeception/verify=*"
新版本加了orm 不支持2.0,需要安装2.1
composer global require "codeception/codeception=2.1.*" "codeception/specify=*" "codeception/verify=*"
如果你没有为全局包使用Composer的话运行composer global status
. 应该输出:
Changed current directory to <directory>
然后将<directory>/vendor/bin
加到系统环境变量里。现在你就能在命令行使用codecept
命令。
vim ~/.bash_profile
export PATH=~/.composer/vendor/bin:$PATH
source ~/.bash_profile
#windows 运行sysdm.cpl ->高级->环境变量->系统变量->Path 进行编辑
通过在根目录文件composer.json
添加一下代码来安装faker扩展。
composer require --dev yiisoft/yii2-faker:*
创建 yii2_advanced_tests
数据库然后通过使用migrations(Yii2提供的迁移工具)更新 :
默认的迁移文件:console/migrations/m130524_201442_init.php
https://github.com/pcfreak30/Yii-Migration-Generator/
迁移工具的使用见:
ref:http://www.yiifans.com/yii2/guide/db-migrations.html
yii migrate/create users
cd tests/codeception/ && php bin/yii migrate
还是不行,后来直接修改m130524_201442_init.php 中user为users,此处是因为我们之前将表user改为了users。重复上面步骤,运行第五步,成功开始测试。
php codeception/bin/yii migrate
为了能进行acceptance测试,你需要启动一个web服务器。 最简单的方式是使用PHP内置的webserver。在 common
, frontend
等所在的根目录运行下面指令:
php -S localhost:8080
假如你在 tests/codeception
这个目录,现在你可以通过下面的命令来运行这些测试了 :
# frontend tests
cd frontend
codecept build
~/.composer/vendor/bin/codecept build
codecept run
# backend tests
cd backend
codecept build
codecept run
# etc.
如果你已经为每一个应用运行了codecept build
,你可以跳过上面的步骤来通过一句codecept run
运行所有的测试。
修改配置文件
文件:frontend/acceptance.suite.yml修改如下
# Codeception Test Suite Configuration
# suite for acceptance tests.
# perform tests in browser using the Selenium-like tools.
# powered by Mink (http://mink.behat.org).
# (tip: that's what your customer will see).
# (tip: test your ajax and javascript by one of Mink drivers).
# RUN `build` COMMAND AFTER ADDING/REMOVING MODULES.
class_name: AcceptanceTester
modules:
enabled:
- WebDriver
# - PhpBrowser
- tests\codeception\common\_support\FixtureHelper
# you can use WebDriver instead of PhpBrowser to test javascript and ajax.
# This will require you to install selenium. See http://codeception.com/docs/04-AcceptanceTests#Selenium
# "restart" option is used by the WebDriver to start each time per test-file new session and cookies,
# it is useful if you want to login in your app in each test.
# - WebDriver
config:
# PhpBrowser:
# url: 'http://localhost:8080'
WebDriver:
# url: 'http://localhost'
url: 'http://xxx.dev'
# browser: firefox
browser: chrome
restart: false
selenium 功能自动化测试工具的使用
# 分别下载selenium-server-standalone-3.0.0.jar 和chromedriver.exe,运行:
java -jar selenium-server-standalone-3.0.0.jar
chromedriver.exe
# 测试
cd frontend
codecept build
codecept run
#测试一个文件
codecept run acceptance unit\models\ContactFormTest.php --report --html
codecept run function unit\models\ContactFormTest.php --report --html
codecept run unit unit\models\ContactFormTest.php --report --html
[codeception 运行testcase 的方式](http://blog.csdn.net/huoba1/article/details/41721345)
#php composer.phar require facebook/webdriver
参考资料:
selenium
Working with PHPUnit and Selenium Webdriver
php-webdriver
chromedriver
菜鸟学自动化测试(一)——selenium IDE
标签: 测试
发表评论 登录: