我想为不同的codeception测试执行不同的转储文件。现在,Db转储文件正在从shell_exec
命令执行_before
AcceptanceHelper
方法,该方法在每次验收测试之前执行。类似这里建议的东西。应用程序中有很多测试。所以,流程如下
- tests/acceptance/application/<contains alot of tests related to application>
- tests/acceptance/location/<contains alot of tests related to location>
两个测试目录/application/
和/location/
使用相同的AcceptanceHelper
。因此,我想要的是目录中所有测试/application/
与/location/
测试不同的可执行转储文件。
考虑类似"获取当前正在运行的测试名称"之类的内容。假设/application/
目录中的所有测试都application_dump.sql
,目录内的所有测试location_dump.sql
/location/
。
P.S: Using a different suite for application and location is ideally not what i am looking for.
只是为了帮助那里的一些人。由于没有适当的方法来实现这一目标,因为获取当前正在运行的测试名称似乎仍在开发中。
所以,这就是我设法解决问题的方式。我已经将shell_exec
命令从AcceptanceHelper
方法中移出_before
并在AcceptanceHelper
内部创建了一个新的公共方法,可以在每个验收测试中通过 actor 类$I
访问该方法,如下所示
$I->executeDbDump('application_dump.sql');
$I->executeDbDump('location_dump.sql');
使用这种方法的唯一缺点是我必须在每次测试之前手动执行相应的executeDbDump
函数。但现在似乎仍然是解决这个问题的最佳方法。