2013-12-21 76 views
7

我刚开始使用Codeception,经过多年编写单元测试,在纯PHPUnit。有一件事情让我烦恼,我无法找到控制测试调用顺序的方法。有没有办法在Codeception中控制测试订单?

在纯旧PHPUnit我被手动构建测试结构是这样的:

$suite = new PHPUnit_Framework_TestSuite(); 
$suite->addTest('MyFirstTest'); 
$suite->addTest('MySecondTest'); 

和测试将在它们被添加到套件中的顺序调用。另一方面,Codeception似乎是遍历目录并运行它可以找到的每个测试。

我希望能够控制在两个层面上测试的顺序:

  1. 在不同类型的测试被调用的顺序(即我想acceptance tests之前运行unit tests
  2. 我想控制在特定测试类型中调用的测试顺序(以类似的方式PHPUnit构建套件)

Ad。 2:比方说,我在acceptance目录中的两个测试:

AbcCept.php 
WebGuy.php 
XyzCept.php 

我希望能够AbcCept.php之前运行XyzCept.php。这甚至有可能吗?

并预测挑剔的评论:是的,我知道测试应该能够以任何顺序运行,而不是依赖于彼此,但这不是我所要求的。

回答

7

文件按名称排序(我假设我们正在讨论来自同一目录的文件)。换句话说,如果您需要在AbcCept.php之前运行测试XyzCept.php,您可以将XyzCept.php重命名为AazCept.php

+1

好的,谢谢。这很明显。我现在实际上将它们按数字排序(通过添加前缀“001”,“002”等)。但是复杂的目录结构呢,单元测试类在命名空间(PSR-0)中呢? –

+1

所有文件按其全名排序,即路径+文件名。 – akond

相关问题