在Codeception中是否可以控制测试顺序?

问题描述 投票:8回答:2

[我在多年以普通Codeception编写单元测试后才开始使用PHPUnit。让我烦恼的一件事是,我找不到控制测试调用顺序的方法。

在纯旧的PHPUnit中,我像这样手动构建测试结构:

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

并且将按照将它们添加到套件中的顺序来调用测试。 Codeception似乎正在遍历目录并运行它可以找到的每个测试。

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

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

广告2:假设我在acceptance目录中有两个测试:

AbcCept.php
WebGuy.php
XyzCept.php

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

并且期待挑剔的评论:是的,我知道测试应该能够以任何顺序运行,并且彼此之间不依赖,但这不是我要的。

php phpunit codeception
2个回答
7
投票

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


0
投票

您可以创建一个批处理脚本,以所需的任何顺序运行测试,例如,

cd \path\to\test\dir
codecept run unit
codecept run acceptance

cd \path\to\test\dir
codecept run unit
codecept run acceptance XycCept.php
codecept run acceptance AbcCept.php

请参见this page上的“运行”命令。

© www.soinside.com 2019 - 2024. All rights reserved.