Codeception

Codeception是PHP的现代全栈测试框架。(Codeception is a modern full-stack testing framework for PHP. )

Github stars Tracking Chart

Codeception是PHP的现代全栈测试框架。 受BDD的启发,它为您提供了一种绝对新的编写验收、功能和单元测试的方式。 由PHPUnit提供支持。

尽管TDD(测试驱动开发)受到广泛普及,但一些PHP开发人员从来没有为他们的应用程序编写自动化测试,主要是因为他们认为它很难、慢或无聊。Codeception框架是为了实际测试而开发的。 它允许以单一、连贯的方式进行编写单元、功能、集成和验收测试。

它可以称为BDD(行为驱动开发)框架。 所有的Codeception测试都以描述性方式编写。 只要看着测试本体,您就可以清楚地了解正在测试的内容以及如何进行测试。 即使是具有许多断言的复杂测试也是用简单的PHP域特定语言(DSL)编写的。

验收测试样品:

<span class="pl-pse"><?php</span><span class="pl-s1"><span class="pl-smi">$I</span> <span class="pl-k">=</span> <span class="pl-k">new</span> <span class="pl-c1">FunctionalTester</span>(<span class="pl-smi">$scenario</span>);</span><span class="pl-s1"><span class="pl-smi">$I</span><span class="pl-k">-></span>wantTo(<span class="pl-s"><span class="pl-pds">'</span>create wiki page<span class="pl-pds">'</span></span>);</span><span class="pl-s1"><span class="pl-smi">$I</span><span class="pl-k">-></span>amOnPage(<span class="pl-s"><span class="pl-pds">'</span>/<span class="pl-pds">'</span></span>);</span><span class="pl-s1"><span class="pl-smi">$I</span><span class="pl-k">-></span>click(<span class="pl-s"><span class="pl-pds">'</span>Pages<span class="pl-pds">'</span></span>);</span><span class="pl-s1"><span class="pl-smi">$I</span><span class="pl-k">-></span>click(<span class="pl-s"><span class="pl-pds">'</span>New<span class="pl-pds">'</span></span>);</span><span class="pl-s1"><span class="pl-smi">$I</span><span class="pl-k">-></span>see(<span class="pl-s"><span class="pl-pds">'</span>New Page<span class="pl-pds">'</span></span>);</span><span class="pl-s1"><span class="pl-smi">$I</span><span class="pl-k">-></span>submitForm(<span class="pl-s"><span class="pl-pds">'</span>form#new_page<span class="pl-pds">'</span></span>, <span class="pl-c1">array</span>(<span class="pl-s"><span class="pl-pds">'</span>title<span class="pl-pds">'</span></span> <span class="pl-k">=></span> <span class="pl-s"><span class="pl-pds">'</span>Tree of Life Movie Review<span class="pl-pds">'</span></span>,<span class="pl-s"><span class="pl-pds">'</span>body<span class="pl-pds">'</span></span> <span class="pl-k">=></span> <span class="pl-s"><span class="pl-pds">"</span>Next time don't let Hollywood create art-house!<span class="pl-pds">"</span></span>));</span><span class="pl-s1"><span class="pl-smi">$I</span><span class="pl-k">-></span>see(<span class="pl-s"><span class="pl-pds">'</span>page created<span class="pl-pds">'</span></span>); <span class="pl-c"><span class="pl-c">//</span> notice generated</span></span><span class="pl-s1"><span class="pl-smi">$I</span><span class="pl-k">-></span>see(<span class="pl-s"><span class="pl-pds">'</span>Tree of Life Movie Review<span class="pl-pds">'</span></span>,<span class="pl-s"><span class="pl-pds">'</span>h1<span class="pl-pds">'</span></span>); <span class="pl-c"><span class="pl-c">//</span> head of page of is our title</span></span><span class="pl-s1"><span class="pl-smi">$I</span><span class="pl-k">-></span>seeInCurrentUrl(<span class="pl-s"><span class="pl-pds">'</span>pages/tree-of-life-movie-review<span class="pl-pds">'</span></span>); <span class="pl-c"><span class="pl-c">//</span> slug is generated</span></span><span class="pl-s1"><span class="pl-smi">$I</span><span class="pl-k">-></span>seeInDatabase(<span class="pl-s"><span class="pl-pds">'</span>pages<span class="pl-pds">'</span></span>, <span class="pl-c1">array</span>(<span class="pl-s"><span class="pl-pds">'</span>title<span class="pl-pds">'</span></span> <span class="pl-k">=></span> <span class="pl-s"><span class="pl-pds">'</span>Tree of Life Movie Review<span class="pl-pds">'</span></span>)); <span class="pl-c"><span class="pl-c">//</span> data is stored in database</span></span><span class="pl-pse"><span class="pl-s1">?</span>></span>

对于单元测试,您可以继续使用经典的PHPUnit测试,因为Codeception也可以运行它们。

Overview

Name With OwnerCodeception/Codeception
Primary LanguagePHP
Program languagePHP (Language Count: 5)
Platform
License:MIT License
Release Count211
Last Release Name5.1.2 (Posted on )
First Release Namev1.0.1 (Posted on 2011-12-18 16:28:36)
Created At2011-11-30 04:06:44
Pushed At2024-04-24 15:03:31
Last Commit At
Stargazers Count4.7k
Watchers Count147
Fork Count1.3k
Commits Count7.7k
Has Issues Enabled
Issues Count3567
Issue Open Count130
Pull Requests Count2299
Pull Requests Open Count15
Pull Requests Close Count627
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

Codeception

Latest Stable
Total Downloads
Scrutinizer Code Quality

Modern PHP Testing for everyone

Codeception is a modern full-stack testing framework for PHP.
Inspired by BDD, it provides an absolutely new way of writing acceptance, functional and even unit tests.
Powered by PHPUnit., General, Windows, Webdriver, HHVM, -------, --------, --------, --------, Build Status, Build status, Build Status, wercker status, #### Contributions

At Codeception we are glad to receive contributions from the community. If you want to send additions or fixes to the code or the documentation please check the Contributing guide.

At a Glance

Describe what you test and how you test it. Use PHP to write descriptions faster.

Run tests and see what actions were taken and what results were seen.

Sample test

$I->wantTo('create wiki page');
$I->amOnPage('/');
$I->click('Pages');
$I->click('New');
$I->see('New Page');
$I->submitForm('form#new_page', ['title' => 'Movie Review']);
$I->see('page created'); // notice generated
$I->see('Movie Review','h1'); // head of page of is our title
$I->seeInCurrentUrl('pages/movie-review'); // slug is generated
$I->seeInDatabase('pages', ['title' => 'Movie Review']); // data is stored in database

For unit testing you can stay on classic PHPUnit tests, as Codeception can run them too.

Installation

Composer

php composer.phar require "codeception/codeception"

Phar

Download codecept.phar

Copy it into your project.

You can also make Codeception an executable and it put it into your $PATH, for instance:

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

chmod +x codecept.phar

sudo mv codecept.phar /usr/local/bin/codecept

You can then run Codecept in the command line using: codecept bootstrap, codecept run, etc

Run CLI utility:

php codecept.phar

See also Installation, QuickStart

Getting Started

After you successfully installed Codeception, run this command:

codecept bootstrap

This will create a default directory structure and default test suites.

Documentation

Documentation

Documentation is included within the project. Look for it in the 'docs' directory.

License

MIT

(c) Codeception Team
2011-2018

To the top