我正在使用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