我正在使用Codeception为Symfony项目进行验收测试。我需要测试一切,这意味着测试页面(html内容)以及它们执行的ajax调用(JSON内容)。一些Codeception模块是否不兼容?
我已经启用了Symfony2的模块在我的套房设置,但我觉得在这几个方法来检查JSON字符串,所以我想我应该让REST模块为好。但是,如果我这样做,其他以前存在的测试失败。
例如,这个简单的测试:
public function privateExtranetHome(AcceptanceTester $I)
{
$I->wantTo('test something');
$I->amOnRoute('acme_site_home.es');
$I->assertEquals(
'container',
$I->grabAttributeFrom('#container-slider', 'class')
);
}
这不是一个JSON测试的测试,只是在我Cest
类中已存在的测试,即通过当我只有启用了Symfony2的模块,而现在失败我添加了REST模块。该错误信息是:
Scenario:
* I am on route "acme_site_home.es"
[Page] http://localhost/es
[User] anon. []
* I grab attribute from "#container-slider","class"
Fatal error: Call to a member function hasAttribute() on null in [...]\Codeception\Module\REST.php on line 993
也许amOnRoute()
方法与REST模块不兼容,因为启用了后者的时候,我得到一个空的响应。但是,我的问题是:是否有一些文档,指出哪些模块不兼容并且不应该一起启用?或者我应该按照经验法则为每个模块使用单独的套件?
以防万一,我接受套件设置如下:
class_name: AcceptanceTester
modules:
enabled:
- Asserts
- Db
- Symfony2
- Doctrine2
- \Tests\Helper\Acceptance
而且我Codeception设置:
namespace: Tests
actor: Tester
paths:
tests: tests
log: tests/_output
data: tests/_data
support: tests/_support
envs: tests/_envs
settings:
bootstrap: _bootstrap.php
colors: true
memory_limit: 1024M
extensions:
enabled: [ Codeception\Extension\RunFailed ]
modules:
config:
Db:
dsn: 'mysql:host=localhost;dbname=acme_test'
user: 'root'
password: 'blahblah'
dump: 'tests/_data/dump.sql'
populate: false
cleanup: false
Doctrine2:
depends: Symfony2
cleanup: false
PhpBrowser:
url: http://acme.com
WebDriver:
browser: firefox
url: http://acme.com
REST:
depends: Symfony2
url: http://acme.com
问题链接:https://github.com/Codeception/Codeception/issues/2604谢谢@Naktibalda。 – marcv
这个建议有帮助吗?或者您是否需要REST中的XML功能? – Naktibalda
它帮助,我不需要XML。谢谢! – marcv