【发布时间】:2012-02-13 12:14:18
【问题描述】:
我是 PHPUnit 的新用户,我正在将我们现有的测试(断言)转换为 PHPUnit 框架,以提供更好的测试环境和代码覆盖率。但是,我需要知道如何尝试让 PHPUnit 与我们的测试代码结构一起工作。
我们的项目目录类似于以下:
应用1/
CREDIT_CARD.class - CREDIT_CARD 的类命名约定
CREDIT_CARD.class.test - CREDIT_CARD.class 的自动化测试
File.php - 应用程序文件
File.php.test - File.php 的自动化测试
File2.php
File2.php.test - File2.php 的自动化测试
Application2/
ANOTHER_CLASS.class
ANOTHER_CLASS.class.test
DifferentFile.php - 应用程序文件
DifferentFile.php.test - File.php 的自动化测试
lib/
实用程序/
SHARED_CLASS.class
SHARED_CLASS.class.test
视觉/
VISUAL_TOOL.class
VISUAL_TOOL.class.test
我需要知道如何配置 PHPUnit 测试,以便我可以在 lib/UTIL/.test(它使用 setUp() 方法加载类文件)然后在 lib/VC/ 中运行测试。测试,然后(如果成功)是 Application1 和 Application2 测试。我看到提到了 PHPUnit_xml 文件和引导文件,但我找不到参考模板来查看这些是否是我需要的。任何帮助,将不胜感激。
我知道文档是指文件名之外的 test.php,但我希望不必更改我们的结构和命名约定,因为我希望能够混合运行这些文件,直到它们全部转换为 PHPUnit 框架。更改名称将导致我们公司的程序更改和对开发人员的培训,这是我试图避免的。
提前感谢您的帮助。
【问题讨论】:
-
所以
Filename.class.test确实包含一个扩展 PHPUnit_Framework_TestCase 的类?我说对了吗? -
是的。类 TEST_SOME_CLASS 扩展 PHPUnit_Framework_TestCase { protected function setUp() { if (!class_exists('SOME_CLASS')) require_once(substr(FILE, 0, -5)); // 剥离 '.test' 扩展名 } public function testConstants() { $this->assertEquals(SOME_CLASS::TYPE_1, 1); $this->assertEquals(SOME_CLASS::TYPE_2, 2); } }
标签: php unit-testing configuration phpunit