【问题标题】:Phalcon: how to run example unit test?Phalcon:如何运行示例单元测试?
【发布时间】:2014-11-04 07:07:55
【问题描述】:

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

我创建了作曲家文件:

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

composer 安装后,我尝试运行 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...

【问题讨论】:

    标签: php phpunit composer-php phalcon


    【解决方案1】:

    当我读完这个问题时,我期待看到“好吧……我拿着枪,在肚子里开了两枪……”自己的。我假设你自己的。

    首先,incubator 是一个有趣的存储库,但它可能是您在项目中最不需要使用的东西。它旨在让您的生活更轻松,但大多数东西在那里都是实验性的,并且更多地充当灵感而不是解决方案(恕我直言)。它受到较少参与的人的支持,它不起作用的原因也可能是 PHPUnit 版本的不同(孵化器使用 3.7,当代世界其他地方使用 4.2,这有一些不兼容)。

    Phalcon 与开箱即用的 PHPUnit 完美配合。要运行基本测试,您只需按照documentation 安装和配置 PHPUnit。最简单的 phpunit.xml 可以是这样的:

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

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

    【讨论】:

    • 我关注文档和您的评论。现在我收到“PHP 致命错误:在...中找不到类 'UnitTestCase'”。你知道为什么会这样吗?为什么 phalcon 的家伙不能给出一套工作代码。
    • Phalcon 的人一定很忙,别生他们的气。这是两年前的事了,可能已经发生了很多变化,我没有跟踪它,不能肯定地说出了什么问题。乍一看,这是自动加载器的问题——它不能UnitTestCase 类。检查 composer.json 和 phpunit 配置中的所有路径。
    猜你喜欢
    • 2013-09-22
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多