在代码感知接受帮助程序中动态执行数据库转储


Executing DB dump dynamically in codeception acceptance helper

我想为不同的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函数。但现在似乎仍然是解决这个问题的最佳方法。