<phpunit backupGlobals="false" colors="true">
<testsuite name="app1" >
<directory>./app1</directory>
</testsuite>
<testsuite name="app1" >
<directory>./app2</directory>
</testsuite>
</phpunit>
Run Code Online (Sandbox Code Playgroud)
我如何使第一和第二testuite加载不同的bootstraps?
我在PHPUnit中看到的下一个奇怪之处:
class DummyTest extends PHPUnit_Framework_TestCase {
public function testDummy() {
$this->assertTrue(false, 'assert1');
$this->assertTrue(false, 'assert2');
}
public function testDummy2() {
$this->assertTrue(false, 'assert3');
}
}
Run Code Online (Sandbox Code Playgroud)
一旦第一个断言在测试中失败,则忽略测试的其余部分.
所以(通过简单调用phpunit DummyTest.php):
上面的代码将显示2个测试, 2个断言,2个失败.什么?
如果我通过所有测试,那么我会好的(2个测试,3个断言).好.
如果我只通过除assert2之外的所有测试,我得到2个测试,3个断言,1个失败.好.
我不明白,但是PHPUnit已经存在了很长时间,当然它必须是我吗?
计数不仅不是我期望的,而且只显示上面代码中第一个失败断言的错误消息.
(顺便说一句,我正在分析PHPUnit为CI生成的xml格式,而不是测试实际代码,因此在一次测试中实现了多个断言.)
PHPUnit setUp()
在运行特定测试之前运行测试类的方法.
我为测试类中的每个测试加载特定于测试的灯具,并且不希望明确地这样做.理想情况下,我希望在setUp()
方法中自动处理这个问题.
如果该setUp()
方法提供测试类名称和测试方法名称,则可以执行此操作.
是否可以在方法中使用测试类和方法的名称setUp()
?
我需要一个phpunit.bat来配置我的NetBeans IDE.
我正在使用wamp,我只是使用这些说明通过pear安装phpunit:
在开始使用PEAR之前,通过从http://pear.php.net/go-pear.phar下载最后一个go-pear进行更新并将其保存到:C:\ wamp\bin\php\php5.3.3\PEAR
然后:
cd C:\wamp\bin\php\php5.3.0>
php -d phar.require_hash=0 PEAR/go-pear.phar
pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear channel-discover pear.symfony-project.com
pear install phpunit/PHPUnit
Run Code Online (Sandbox Code Playgroud)
在那之后,我找不到任何phpunit.bat或phpunit.php
如何通过PEAR安装phpunit后获得phpunit.bat(或任何CLI)?
谁能告诉我如何使用PHPUnit测试RESTful Web服务?PHPUnit似乎没有这种能力.
--stop-on-failure
当其中一个测试失败时,您可以使用flag来打破单元测试.
有没有办法快速告诉PHPUnit重新运行此失败的测试,而是手动提供完整路径?
我正在尝试使用PHPunit关注单元测试.
我在这里找到了一个非常好的教程http://blog.nickbelhomme.com/php/phpunit-training-course-for-free_282
但是有些东西我想念并且还不知道该怎么做.
我有一个用户模块,它维护有关用户的所有信息.还有一个功能保存功能可以将用户保存在数据库中.所以我有一个testFunction
public function testCanCreateUser()
{
$userData = array(
'userName' => 'User1',
'firstName' => 'Joey',
'lastName' => 'Hendricks',
'email' => 'Joey@hendricks.com',
'password' => 'f$tfe8F'
);
$user = new Model_User($userData);
$user->save();
}
Run Code Online (Sandbox Code Playgroud)
我将第一次参加我的测试.由于数据库是空的.但是当我第二次运行我的测试时它将无法工作,因为我的系统不允许同一个用户在数据库中两次.所以为了做到这一点,我必须在每次运行测试之前重新创建我的testdatabase.做这个的最好方式是什么?或者这个问题是以不同的方式解决的吗?
TNX.
我一直试图echo
填写我的phpunit测试但到目前为止没有运气.
我阅读了有关xml配置文件的文档,显然debug
参数是我正在寻找的.不幸的是它仍然无效.无论如何这是我的xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit colors="true"
processIsolation="true"
verbose="true"
debug="true">
</phpunit>
Run Code Online (Sandbox Code Playgroud)
这两个processIsolation
和verbose
被接受,但debug
并非如此.
当我直接将它传递给phpunit时,该命令实际上工作得很好:
phpunit --debug MyTest.php # here stuff is echoed correctly
Run Code Online (Sandbox Code Playgroud)
但是使用xml配置文件看起来它被忽略了.
我正在尝试为php代码嗅探器编写自定义ruleset.xml,但是从命令行调用它而不将其放在默认文件夹中似乎不起作用.
由于文件似乎陈述,否则我想问我在这里做错了什么
:~/$ phpcs --standard=/home/edo/custom_ruleset.xml source/
===>
ERROR: the "/home/edo/custom_ruleset.xml" coding standard is not installed.
The installed coding standards are PEAR, PHPCS, Zend, Squiz and MySource
Run Code Online (Sandbox Code Playgroud)
如果这不起作用:有关如何使用您的来源发送您自己的编码标准的任何建议?谢谢