我有一组需要使用管理用户运行的测试,有些需要使用非管理用户运行。此外,非管理用户通过其中一个测试在我的系统中注册。因此,我考虑使用这个新注册的用户来使用其他测试。
在PHPUnit Manual中显示了以特定顺序执行测试的方式
<phpunit bootstrap="src/autoload.php">
<testsuites>
<testsuite name="money">
<file>tests/FirstTest.php</file>
<file>tests/SecondTest.php</file>
<file>tests/ThirdTest.php</file>
<file>tests/FourthTest.php</file>
</testsuite>
</testsuites>
</phpunit>
因为为每个新的测试用例维护这个列表很烦人,我想指定测试用例,首先注册特定用户,然后是目录中的所有其他测试用例
<phpunit bootstrap="src/autoload.php">
<testsuites>
<testsuite name="money">
<file>tests/RegistrationTest.php</file>
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
不幸的是,一旦在配置文件中定义了一个<directory>
,PHPUnit就会忽略手动指定的订单。
有没有办法解决这个问题并首先从目录中运行特定的测试?
仅供参考我正在使用PHPUnit版本4.5.0
答案 0 :(得分:0)
测试应该彼此独立,不应该使用测试来设置另一个测试。
您需要的是一些代码,用于准备每种类型测试所需的用户,并在需要时使用setUp或setUpBeforeClass方法。每个测试都应该能够创建运行所需的数据。
创建用户所需的代码可能是真实代码,在某些测试用例中进行了测试。没关系。测试可以使用真实代码来设置环境。