すべてのPHPUnitテストを実行するにはどうすればよいですか?
-
06-07-2019 - |
質問
Script.phpというスクリプトがあり、Tests / Script.phpでテストしますが、phpunitテストを実行すると、テストファイルのテストは実行されません。すべてのテストを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;
}
?>
Tests / 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());
}
}
?>
解決 2
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>
他のヒント
Phpテストのファイル名はTest.phpで終わる必要があります
phpunit mydir
は、ディレクトリmydir
xxxxTest.php
という名前のすべてのスクリプトを実行します
(phpunitのドキュメントに記載されていないようです)
for PHPUnitは、自動的に実行することを決定すると思います。ファイル名の規則に従う必要があります:somethingTest.php。
あなたは彼らがこれを文書化したと思うでしょう。私はマニュアルを調べたところ、ディレクトリを渡すことができると言っていますが、実際にはそれを行う方法はありません。
おそらく、クラス名はテストスクリプトファイル名のベース名(&quot; .php&quot;以外)と一致する必要がありますか?
<?php
//Files required for phpunit test
require_once 'PHPUnit/Framework.php';
//Knowing the drupal environment
require_once './includes/bootstrap.inc'; //initialize the Drupal framework
//Loading the drupal bootstrap
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
//Helper file
include_once 'helper.inc';
//Including inc file of addresses module
include_once(module_load_include('inc','addresses_user','addresses_user'));
class addresses_test extends PHPUnit_Framework_TestCase {
protected $uid;
protected function setUp()
{
$this->uid = 1;
}
所属していません StackOverflow