Phalcon:如何运行示例单元测试?

时间:2014-09-10 14:56:51

标签: php phpunit composer-php phalcon

我试图从这里运行一个例子: http://docs.phalconphp.com/en/latest/reference/unit-testing.html

我创建了作曲家文件:

{
    "require": {
        "phalcon/incubator": "dev-master"
    }
}

安装作曲家后,我试图运行phpunit并收到错误:

PHP Fatal error:  Class 'Codeception\TestCase\Test' not found in /www/tests/vendor/phalcon/incubator/codeception/unit/Phalcon/Validation/Validator/Db/UniquenessTest.php on line 9

我添加了新的依赖项:

composer require "codeception/codeception:*"

它添加了许多依赖项。

之后我又收到了一个错误:

PHP Warning:  require_once(tests/data/app/data.php): failed to open stream: No such file or directory in www/tests/vendor/codeception/codeception/tests/unit/Codeception/Module/FacebookTest.php on line 3

我改变了

require_once(tests/data/app/data.php)

require_once(__DIR__ . '/../../../../tests/data/app/data.php')

跟随以下文件:

www/tests/vendor/codeception/codeception/tests/unit/Codeception/Module/WebDriverTest.php
www/tests/vendor/codeception/codeception/tests/unit/Codeception/Module/WFacebookTest.php
www/tests/vendor/codeception/codeception/tests/unit/Codeception/Module/PhpBrowserTest.php

确定。 Phpunit正在运行......我有下一个错误:

PHP Fatal error:  Class 'WebDriverTestCase' not found in `www/tests/vendor/facebook/webdriver/tests/functional/BaseTest.php on line 16`

好的..我试图包括:

require_once __DIR__ . '/WebDriverTestCase.php';

www/tests/vendor/facebook/webdriver/tests/functional/BaseTest.php

现在我有以下错误,我无法修复:

PHP Fatal error:  Uncaught exception 'PHPUnit_Framework_Exception' with message 'Class "PHPUnit_Extensions_RepeatedTest" does not extend PHPUnit_Framework_TestCase.' in www/tests/vendor/phpunit/phpunit/src/Framework/TestSuite.php:195
Stack trace:
#0 /www/tests/vendor/phpunit/phpunit/src/Framework/TestSuite.php(324): PHPUnit_Framework_TestSuite->__construct(Object(ReflectionClass))
#1 /www/tests/vendor/phpunit/phpunit/src/Framework/TestSuite.php(409): PHPUnit_Framework_TestSuite->addTestSuite(Object(ReflectionClass))
#2 /www/tests/vendor/phpunit/phpunit/src/Framework/TestSuite.php(435): PHPUnit_Framework_TestSuite->addTestFile('/Users/anthony/...')
#3 phar:///usr/local/zend/bin/phpunit/phpunit/Util/Configuration.php(911): PHPUnit_Framework_TestSuite->addTestFiles(Array)
#4 phar:///usr/local/zend/bin/phpunit/phpunit/Util/Configuration.php(825): PHPUnit_Util_Configura in /www/tests/UnitTestCase.php on line 61

我认为作曲家应该让你的生活变得更加轻松似乎并非如此。我可以改变供应商库中的一些代码吗?!...我做错了什么?我只需要在phalcon中使用phpunit ...

1 个答案:

答案 0 :(得分:1)

当我读完我期待看到的问题时,#34;好的......我拿了一把枪,在肚子里拍了两次......"如果您正试图从孵化器或Phalcon或您自己的测试中运行测试,我有点不确定。我假设你自己。

首先,孵化器是一个有趣的存储库,但它可能是您需要在项目中使用的最后一件事。这意味着让你的生活更轻松,但大多数东西都是实验性的,更多的是作为灵感而不是解决方案(imho)。由较少参与的人支持它,以及它不起作用的原因也可能是PHPUnit版本的差异(孵化器使用3.7,其他当代世界使用4.2,它们有一些不兼容性)。 / p>

Phalcon开箱即用,与PHPUnit完美搭配。要运行基本测试,您只需按documentation安装和配置PHPUnit即可。最简单的phpunit.xml可能如下所示:

<phpunit bootstrap="../../public/bootstrap.php">
    <testsuite name="Default">
        <directory>../../src/php</directory>
    </testsuite>
</phpunit>

我建议摆脱孵化器(至少在您成功配置PHPUnit之前进行测试)并遵循标准文档。