标签: phpunit

Yii单元测试在测试中无法访问的灯具

配置/ test.php的

'components'=>array(
    'fixture'=>array(
        'class'=>'system.test.CDbFxtureManager'
    ),
),
Run Code Online (Sandbox Code Playgroud)

tests/unit/EntityTest.php(扩展CDbTestCase)

public $fixtures = array('entities'=>'Entity'),
Run Code Online (Sandbox Code Playgroud)

测试/夹具/ Entity.php

return array(
    'entity1'=>array('slug'=>'slug1', 'title'=>'title1'),
    'entity2'=>array('slug'=>'slug2', 'title'=>'title2'),
);
Run Code Online (Sandbox Code Playgroud)

现在,在EntityTest类中,我尝试获取我的实体

$entities = $this->entities;
$entity = $this->entities('entity1');
Run Code Online (Sandbox Code Playgroud)

输出是'Unknown property'实体"for class"EntityTest"'.测试类是'Entity',数据库中的表名是'tbl_entity','tablebrefix'选项'CDbConnection'组件设置为'tbl_'

php phpunit unit-testing yii

2
推荐指数
1
解决办法
1825
查看次数

单元测试的依赖性

目前,我正在尝试首次将单元测试应用于项目.出现了两个问题:

  1. 如果多个测试相互依赖,这是不好的做法吗?在下面的代码中,几个测试需要其他测试的结果是积极的,这是一般的最佳实践吗?

  2. 您与SUT依赖的模拟物体相距多远?在下面的代码中,'Router'取决于'Route',它取决于'RouteParameter'.嘲笑还是不嘲笑?

下面的代码是测试我的'Router'对象,它接受路由Router::addRoute($route)并通过URL路由URL Router::route($url).

class RouterTest extends PHPUnit_Framework_TestCase {
    protected function createSimpleRoute() {
        $route = new \TNT\Core\Models\Route();
        $route->alias = 'alias';
        $route->route = 'route';
        $route->parameters = array();

        return $route;
    }

    protected function createAlphanumericRoute() {
        $route = new \TNT\Core\Models\Route();
        $route->alias = 'alias';
        $route->route = 'test/[id]-[name]';

        $parameterId = new \TNT\Core\Models\RouteParameter();
        $parameterId->alias = 'id';
        $parameterId->expression = '[0-9]+';

        $parameterName = new \TNT\Core\Models\RouteParameter();
        $parameterName->alias = 'name';
        $parameterName->expression = '[a-zA-Z0-9-]+';

        $route->parameters = array($parameterId, $parameterName);

        return $route;
    }

    public function testFilledAfterAdd() { …
Run Code Online (Sandbox Code Playgroud)

php testing dependencies phpunit unit-testing

2
推荐指数
1
解决办法
189
查看次数

PHPUnit没有找到Framework.php

现在已经2天了,我一直试图让phpunit在我的OSX上工作.我正在从MAMP安装运行php.

我已经通过PEAR安装了所有依赖项.phpunit --version命令正在运行并显示:

$ phpunit --version
PHPUnit 3.6.10 by Sebastian Bergmann.
Run Code Online (Sandbox Code Playgroud)

但是,当我从命令行运行测试时,它显示:

Warning: require_once(/Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/Framework): failed to open stream: No such file or directory in /Users/magalie/Sites/HelloWorld/HelloWorldTest.php on line 3

Call Stack:
    0.0028     632128   1. {main}() /Applications/MAMP/bin/php/php5.3.6/bin/phpunit:0
    0.0078    1161288   2. PHPUnit_TextUI_Command::main() /Applications/MAMP/bin/php/php5.3.6/bin/phpunit:46
    0.0078    1162016   3. PHPUnit_TextUI_Command->run() /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/TextUI/Command.php:130
    0.1109    1793352   4. PHPUnit_Runner_BaseTestRunner->getTest() /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/TextUI/Command.php:150
    0.1109    1793352   5. PHPUnit_Runner_BaseTestRunner->loadSuiteClass() /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/Runner/BaseTestRunner.php:104
    0.1115    1837832   6. PHPUnit_Runner_StandardTestSuiteLoader->load() /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/Runner/BaseTestRunner.php:168
    0.1126    1983864   7. PHPUnit_Util_Fileloader::checkAndLoad() /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/Runner/StandardTestSuiteLoader.php:78
    0.1127    1983984   8. PHPUnit_Util_Fileloader::load() /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/Util/Fileloader.php:79
    0.1128    1994704   9. include_once('/Users/magalie/Sites/HelloWorld/HelloWorldTest.php') /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/Util/Fileloader.php:95


Fatal error: require_once(): Failed opening …
Run Code Online (Sandbox Code Playgroud)

phpunit mamp

2
推荐指数
1
解决办法
2867
查看次数

如何测试PHP PDO Singleton类?

PHP PDO Singleton类:

<?php

require_once('app/config.php'); // Require constants HOST, DATABASE, USER, PASSWORD

/*

dbConnection class.

Manages connections to and operations on the database. Call dbConnection::getInstance() to return an instance.
Prepare your statements by calling prepareQuery() on the object

Attribute list:

$instance:
> Static self instance to manage database resource

$connection:
> Holds connection resource

$sth:
> Statement handler variable. Handles SQL statements.
_______________________________________________________________________________________________________________

Method list:

getInstance():
> Creates or returns existing connection to the database

prepareQuery():
> Prepares the $sth …
Run Code Online (Sandbox Code Playgroud)

php mysql singleton phpunit

2
推荐指数
1
解决办法
1588
查看次数

我想将xampp 1.7.7链接到php CLI

我正在使用ubuntu 11.10作为我的本地机器上的root用户,我安装了xampp 1.7.7并且我是ubuntu的新手,同时遵循sitepoint上的教程(http://www.sitepoint.com/getting-关于如何安装梨以使用PhpUnit,我没有注意到它,但似乎我在CL中安装或使用现有的php版本5.3.6来做到这一点,而且梨安装也建立在这个版本,在安装xampp时,我现在有两个版本的php,xampp的5.3.8和5.3.6,无论如何,我想要做的是使用现有的xampp php版本并在其上构建pear,以使所有我的工作通过xampp.so我的问题是:

  1. 如何卸载php V5.3.6并安装它?
  2. 如何将CL与php ver链接起来.xampp?
  3. 如何在php ver上构建下一个pear安装.xampp?
  4. 我想要我所有的网络开发.通过xampp工作,还有什么我需要unistall,以避免这种混乱?4.

我在attampet做了以下解决问题:

  1. 我用bash写的:

    gedit~/.bashrc

  2. 我添加到〜/ .bashrc文件的末尾以尝试更改环境路径:

    export PATH =/opt/lampp/bin:$ PATH export PATH =/opt/lampp/lib/php:$ PATH export PATH =/opt/lampp/lib/php/PHPUnit/pearcmd.php:$ PATH

  3. 我使用'php -v'和'pear list'检查了php和pear版本,我得到了一个输出:

    PHP 5.3.8(cli)(内建于2011年9月19日13:29:27)版权所有(c)1997-2011 PHP Group Zend Engine v2.3.0,版权所有(c)1998-2011 Zend Technologies

和梨:

Installed packages, channel pear.php.net:
=========================================
Package          Version State
Archive_Tar      1.3.9   stable
Console_Getopt   1.3.1   stable
PEAR             1.9.4   stable
PHPUnit          1.3.2   stable
Structures_Graph 1.0.4   stable
XML_Util         1.2.1   stable
Run Code Online (Sandbox Code Playgroud)
  1. 当我运行:'phpunit MessageTest.php':我明白了

    PHP警告:require_once(PHP/CodeCoverage/Filter.php):无法打开流:第38行/ usr/bin/phpunit中没有此类文件或目录

    警告:require_once(PHP/CodeCoverage/Filter.php):无法打开流:第38行/ usr/bin/phpunit中没有此类文件或目录PHP致命错误:require_once():无法打开所需的'PHP/CodeCoverage/Filter/usr/bin/phpunit上的.php'(include_path ='.:/ php/includes:/ opt/lampp/lib/php:/ opt/lampp/bin:/ opt/lampp/lib/php/PEAR')第38行

5.i运行以下命令,如其他问题所述,作为该错误的解决方案:

sudo …
Run Code Online (Sandbox Code Playgroud)

php xampp pear phpunit ubuntu-11.10

2
推荐指数
1
解决办法
3950
查看次数

我如何在phpunit中"启动"正则表达式过滤器

我试过这个 phpunit --debug --filter /^complete/ feed.php;

出于某种原因,它说0测试.

如果我这样做phpunit --debug --filter /complete/ feed.php;会点击任何带有"完整"一词的功能

regex phpunit

2
推荐指数
1
解决办法
1514
查看次数

Phpunit - 如何注释测试?

我想在不同的流程中运行我的测试.因此,我想用"@runTestsInSeparateProcesses"注释我的测试.但是,我之前从未注释过Phpunit测试,但我无法找到实际放置注释的好地方.我已经看到了不同注释的作用,而不是放在哪里.有人可以举个例子吗?

谢谢!

php phpunit unit-testing annotations

2
推荐指数
1
解决办法
914
查看次数

我应该在暂存/生产环境中使用PHPUnit吗?

我已经安装了PHPUnit框架来执行单元测试.我编写了测试用例,并使用现有的PHPUnit库进行测试.

是否有必要在登台和生产环境中配置PHPUnit框架?如果是这样,phpunit测试框架和相关文件在暂存和生产中占用了内存,这是不必要的.

在本地环境中使用PHPUnit测试框架是否足够?

php phpunit

2
推荐指数
1
解决办法
1964
查看次数

phpunit中的状态码错误

即使请求的页面不存在,我总是在我的测试用例中获得状态代码200/ok.

public function testCompleteScenario()
{
    $client = static::createClient();

    $container = $client->getContainer();
    $kernel    = $client->getKernel();

    $crawler = $client->request('GET', '/somethingnotexisting');
    $this->assertTrue(200 === $client->getResponse()->getStatusCode());

}
Run Code Online (Sandbox Code Playgroud)

我正在使用带有netbeans 7.1的phpunits,并且我的symfony防火墙配置为仅允许经过身份验证的用户.否则,他们会重定向到登录页面.

可能有一些php.ini调优吗?

编辑:

这是我从netbeans获得的代码:

在此输入图像描述

phpunit symfony

2
推荐指数
1
解决办法
3745
查看次数

有没有办法暂停使用PHPUnit扩展Selenium

我的测试运行得太快,代码总是失败.有没有办法暂停?

我试过$ this-> pause('3000'); 和$ this-> wait('3000'); 但它不起作用.

现在,我正在使用$ this-> setSpeed('3000'); 但它运行得太慢了.

selenium phpunit selenium-server

2
推荐指数
1
解决办法
5073
查看次数