问题描述
我有一个名为Script.php的脚本,并在Tests /Script.php中对其进行了测试,但是当我运行phpunit Tests时,它不会在我的测试文件中执行任何测试。如何使用phpunit运行所有测试?
PHPUnit 3.3.17,PHP 5.2.6-3ubuntu4.2,最新的Ubuntu
输出:
$ phpunit Tests
PHPUnit 3.3.17 by Sebastian Bergmann.
Time: 0 seconds
OK (0 tests, 0 assertions)
这是我的脚本和测试文件:
Script.php
<?php
function returnsTrue() {
return TRUE;
}
?>
测试/Script.php
<?php
require_once 'PHPUnit/Framework.php';
require_once 'Script.php'
class TestingOne extends PHPUnit_Framework_TestCase
{
public function testTrue()
{
$this->assertEquals(TRUE, returnsTrue());
}
public function testFalse()
{
$this->assertEquals(FALSE, returnsTrue());
}
}
class TestingTwo extends PHPUnit_Framework_TestCase
{
public function testTrue()
{
$this->assertEquals(TRUE, returnsTrue());
}
public function testFalse()
{
$this->assertEquals(FALSE, returnsTrue());
}
}
?>
最佳答案
php测试的文件名必须以Test.php结尾
phpunit mydir
将在目录mydir中运行所有名为xxxxTest.php
的脚本
(看起来好像phpunit文档中没有描述)
次佳答案
我创建了以下phpunit.xml,现在至少可以在根目录中执行phpunit –configuration phpunit.xml来运行Tests /中的测试。
<phpunit backupGlobals="false"
backupStaticAttributes="false"
syntaxCheck="false">
<testsuites>
<testsuite name="Tests">
<directory suffix=".php">Tests</directory>
</testsuite>
</testsuites>
</phpunit>
第三种答案
我认为forPHPUnit决定自动运行它必须遵循文件名约定:somethingTest.php。
第四种答案
您认为他们会对此进行记录。我只是翻阅了手册,他们说您可以传递目录,但实际上却不行。
也许您的类名必须与您的测试脚本文件名的基本名(除”.php”之外的其他所有内容)匹配?