Linux下codeception安装及使用

1、Download

本文通过composer进行安装,故在下载codeception前需先下载composer包。在web应用根目录下执行命令:

curl -sS https://getcomposer.org/installer | php

然后在web应用程序根目录下,执行以下命令进行下载:

wget http://codeception.com/codecept.phar

通过composer进行安装:

php composer.phar require "codeception/codeception:*"

ps:
此时会出现“Do not run Composer as root/super user! See https://getcomposer.org/root for details”的报错,可以忽略,等待一小会之后会继续安装

 在当前目录下,执行:

php codecept.phar bootstrap

此时可以看到codeception.yml 文件和 tests目录,Codeception 将会生成unit, functional, 和 acceptance三个部分,在tests目录会看到有三个配置文件和三个名称与之对应的目录。如图所示:

 至此,codeception已经安装完毕,接下来我们看下简单的实际应用。

 

2、Using

默认测试会被写成叙述式的场景,创建的场景的PHP文件必须以Cept 后缀命名。

现在我们创建一个文件 tests/acceptance/SigninCept.php

我们可以通过以下的命令:

$ php codecept.phar generate:cept acceptance Signin

一个场景总是从Actor类初始化开始,接着,在场景中输入类似以 $I-> 接着从自动完成列表里选择一个合适的行为。

<?php
$I = new AcceptanceTester($scenario);
?>

将设我们有一个'login'页面,让我们登录到我们的页面通过用户名密码进行身份验证,然后我们到一个有Hello, %username%这样文本的页面,让我们来看看在Codeception里怎么写这个场景。

<?php
$I = new AcceptanceTester($scenario);
$I->wantTo('log in as regular user');
$I->amOnPage('/login');
$I->fillField('Username','davert');
$I->fillField('Password','qwerty');
$I->click('Login');
$I->see('Hello, davert');
?>

在执行这个测试之前,我们应该确保网站正在本地服务器上运行着。我们打开tests/acceptance.suite.yml配置文件将URL参数替换为你的web应用程序的访问URL:

class_name: AcceptanceTester
modules:
    enabled:
        - PhpBrowser:
            url: 'http://myappurl.local'
        - HelperAcceptance

配置好URL后用 run 命令运行测试:

$ php codecept.phar run

这里我们会看到类似的输出:

Acceptance Tests (1) -------------------------------
Trying log in as regular user (SigninCept.php)   Ok
----------------------------------------------------

Functional Tests (0) -------------------------------
----------------------------------------------------

Unit Tests (0) -------------------------------------
----------------------------------------------------

Time: 1 second, Memory: 21.00Mb

OK (1 test, 1 assertions)

 

让我们获取详细的输出:

$ php codecept.phar run acceptance --steps

我们应该看到一步一步的行为报告。

Acceptance Tests (1) -------------------------------
Trying to log in as regular user (SigninCept.php)
Scenario:
* I am on page "/login"
* I fill field "Username" "davert"
* I fill field "Password" "qwerty"
* I click "Login"
* I see "Hello, davert"
  OK
----------------------------------------------------  

Time: 0 seconds, Memory: 21.00Mb

OK (1 test, 1 assertions)

这个简单的测试可以扩展到一个完整的场景使用场景。 所以,通过模拟用户的行为,我们可以测试我们的任何一个网站。

posted @ 2019-02-16 17:57  cfYu  阅读(839)  评论(0编辑  收藏  举报