我使用
Codeception
框架和 Netbeans
IDE 使用 PHP
进行测试自动化。
我想在一组中依次运行 2 个测试,其中 API 测试将首先运行,在 API 测试成功运行后,接下来应该运行验收测试,因为验收测试取决于 API 测试的成功.
这是我为完成这项工作所做的事情:
API 测试是在我的项目中创建的:
FT/tests/api/MyAPITestCest.php
验收测试是在我的项目中创建的:
FT/tests/acceptance/MyAcceptanceTestCest.php
我的codeception.yml文件在这里定义:
FT/codeception.yml
在 codeption.yml 文件中,我定义了我的组,它将依次运行 api 测试和验收测试。
actor: Tester
paths:
tests: tests
groups:
myGroup: [tests/api/MyAPITestCest.php, tests/acceptance/MyAcceptanceTestCest.php]
这是我用来运行我的一组测试的命令:
sudo docker-compose run -e ENVVARIABLE=abc.my.env.com tests vendor/bin/codecept run -g myGroup -vvv --html results.html
问题
尽管 API 测试已被定义为测试组中的第一个测试,但验收测试始终作为测试组中的第一个测试运行
这就是为什么验收测试永远无法获取 API 测试生成的输入,因此它总是失败。
不确定出了什么问题;感谢您提供宝贵的意见,以便我可以在验收测试之前按照测试组中定义的相同顺序成功运行我的 API 测试。
提前致谢!
我找到了解决方案。
这就是我所做的:
我需要在验收测试之前执行 API 测试,并在验收测试中使用该 API 方法的输出。
作为解决方案,我在验收测试类中调用了所需的 api 测试方法。这就是我为此所做的:
2.i.在接受 yml 文件中,我添加了 API 帮助器类 (RestAPIAdminUser) 作为启用的模块:
modules:
enabled:
- \Helper\Acceptance
- \Helper\RestAPIAdminUser
2.ii.它使我能够在验收测试类中创建此 RestAPIAdmin 用户类的实例,现在在该实例的帮助下,我现在可以在需要输入的验收方法之前在验收测试类中使用所需的 api 测试方法来自这个 api 方法。