相关疑难解决方法(0)

PHPUnit组织测试的最佳实践

我目前要从头开始使用phpunit测试项目.所以我正在研究一些项目(比如Zend),看看他们是如何做的以及他们如何组织他们的测试.

大多数事情都很清楚,只有我遇到的一些问题是如何正确组织测试套件.Zend有一个AllTests.php,从中加载其他测试套件.
艰难地查看它正在使用的类PHPUnit_Framework_TestSuite来创建一个套件对象然后添加其他套件,但如果我查看PHPUnit文档在3.4之后的PHPUnit版本中组织测试,那么只有XML或FileHierarchy的描述.使用类来组织测试的那个被删除了.
我没有发现任何不推荐使用此方法的内容,以及像Zend这样的项目仍在使用它.

但是如果它被弃用,我怎么能用xml配置在相同的结构中组织测试?执行所有测试都没有问题,但如果我只想执行一些测试,我将如何组织测试(在xml中).也许创建几个xmls,我只指定要运行的几个测试/测试套件?

因此,如果我只想测试应用程序的module1和module2,我是否每个都有一个额外的xml,并且仅为那些模块(模块使用的类)定义测试套件.还有一个为所有测试定义测试套件的?

或者@group,在特定测试中使用注释将它们标记为module1或module2 会更好吗?

提前感谢您指出一些最佳做法.

php phpunit

67
推荐指数
2
解决办法
2万
查看次数

在命名空间中组织PHPUnit测试

我看到了将PHPUnit单元测试组织到命名空间层次结构中的两种选择.这两种方法有哪些优点/缺点?是否有任何明显的缺陷我没有考虑过会使一个明显更好的选择?

考虑一个示例类,如\SomeFramework\Utilities\AwesomeClass:

  • 方法1:将每个TestCase类放入与覆盖类相同的名称空间中.

    \SomeFramework\Utilities\AwesomeClassTest
    
    Run Code Online (Sandbox Code Playgroud)
    • 好处
      • 与编写PHPUnit测试的传统方法一致.
    • 缺点
      • 灵活性较差.
      • 似乎打破了使用命名空间的原则 - 不相关的测试被分组到同一个命名空间中.

  • 方法2:将每个TestCase放在以覆盖类命名的命名空间中.

    \SomeFramework\Utilities\AwesomeClass\Test
    
    Run Code Online (Sandbox Code Playgroud)
    • 好处
      • 提供了一种非常简单/明显的方法来将多个相关的TestCase类组合在一起,例如针对不同的测试套件.
    • 缺点
      • 可能会导致更深层次,更复杂的层次结构.

php phpunit unit-testing

34
推荐指数
3
解决办法
1万
查看次数

标签 统计

php ×2

phpunit ×2

unit-testing ×1