【问题标题】:Configuring File Names for PHPUnit为 PHPUnit 配置文件名
【发布时间】: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


【解决方案1】:

所以你有名为 Foo.class.test 的文件,而不是 PHPUnit 默认的 FooTest.php

这应该不是什么大问题,因为 PHPUnit 允许您配置哪些文件后缀被视为“测试”。 Test.php 只是默认值。

看看xml config part of the docs regard test organisation

你想要的是:

 <testsuites>
    <testsuite name="Our new shiny phpunit test Suite">
      <directory suffix=".test">./sourceFolder</directory>
    </testsuite>
  </testsuites>

然后 PHPUnit 将扫描源文件夹,包括所有以 .class.test 结尾的文件,并保持其他文件不变。

【讨论】:

  • 由于有一些非类测试文件,这可能需要suffix=".test"
  • 感谢您的建议。由于我确实有不同的文件,并且没有太多使用 PHPUnit 的经验,因此是否有可能获得包含其中一些建议的示例文件?我正在查看参考资料,并且主要只是在寻找一个基本文件来开始反复试验并检查对文档的理解。
  • 还需要注意的是,有些文件的扩展名为.fn,还有JavaScript等文件。 IE:FunctionCode.fn、JavaScript.js、Application.css等……
  • 这是新的首选超链接吗? phpunit.readthedocs.io/en/9.5/…
猜你喜欢
  • 2020-05-27
  • 2014-05-15
  • 2017-11-03
  • 2016-11-20
  • 2013-05-15
  • 2013-11-27
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
相关资源
最近更新 更多