在 codeception acceptance helper 中动态执行 DB dump
Executing DB dump dynamically in codeception acceptance helper
我想为不同的codeception 测试执行不同的转储文件。现在 Db 转储文件正在从 AcceptanceHelper
的 _before
方法中的 shell_exec
命令执行,该命令在每次验收测试之前执行。类似于建议 here。应用程序中有很多测试。所以,流程如下
- 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/
测试的可执行转储文件。
想想 Get current running test name。假设 application_dump.sql
用于 /application/
目录内的所有测试,location_dump.sql
用于 /location/
目录内的所有测试。
P.S: Using a different suite for application and location is ideally not what i am looking for.
只是为了帮助一些人。由于 Get current running test name 似乎仍在开发中,因此没有合适的方法来实现这一点。
所以,这就是我设法解决问题的方法。我已将 shell_exec
命令移出 AcceptanceHelper
的 _before
方法,并在 AcceptanceHelper
中创建了一个新的 public 方法,可以通过 actor class 访问$I
在每次验收测试中都如此
$I->executeDbDump('application_dump.sql');
$I->executeDbDump('location_dump.sql');
使用这种方法的唯一缺点是我必须在每次测试之前手动执行相应的 executeDbDump
函数。但现在似乎仍然是解决该问题的最佳方法。
我想为不同的codeception 测试执行不同的转储文件。现在 Db 转储文件正在从 AcceptanceHelper
的 _before
方法中的 shell_exec
命令执行,该命令在每次验收测试之前执行。类似于建议 here。应用程序中有很多测试。所以,流程如下
- 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/
测试的可执行转储文件。
想想 Get current running test name。假设 application_dump.sql
用于 /application/
目录内的所有测试,location_dump.sql
用于 /location/
目录内的所有测试。
P.S: Using a different suite for application and location is ideally not what i am looking for.
只是为了帮助一些人。由于 Get current running test name 似乎仍在开发中,因此没有合适的方法来实现这一点。
所以,这就是我设法解决问题的方法。我已将 shell_exec
命令移出 AcceptanceHelper
的 _before
方法,并在 AcceptanceHelper
中创建了一个新的 public 方法,可以通过 actor class 访问$I
在每次验收测试中都如此
$I->executeDbDump('application_dump.sql');
$I->executeDbDump('location_dump.sql');
使用这种方法的唯一缺点是我必须在每次测试之前手动执行相应的 executeDbDump
函数。但现在似乎仍然是解决该问题的最佳方法。