Codeception - 验收测试工作但功能测试没有

时间:2013-06-14 10:05:57

标签: unit-testing command-line functional-testing acceptance-testing codeception

我在WAMP平台上运行最新版本的Codeception - 我的接受度非常基本但是工作正常(见下文):

$I = new WebGuy($scenario);
$I->wantTo('Log in to the website');
$I->amOnPage('/auth/login');
$I->fillField('identity','admin@admin.com');
$I->fillField('password','password');
$I->click('Login');

简而言之 - 它检查页面是'auth / login'填写2个表单字段并单击登录按钮。这没有任何问题。

这是我相同的功能测试:

$I = new TestGuy($scenario);
$I->wantTo('perform actions and see result');
$I->amOnPage('/auth/login');
$I->fillField('identity','admin@admin.com');
$I->fillField('password','password');
$I->click('Login');

当我从命令行运行此命令时,我收到以下错误(不是完整错误,但足以理解问题):

1) Couldn't <-[35;1mperform actions and see result<-
[0m in <-[37;1LoginCept.php<-[0m <-41;37mRuntimeException: 
Call to undefined method TestGuy::amOnPage<-[0m.......

我的验收套件有'PhpBrowser'和启用了'WebHelper'模块,功能套件具有'FileSystem'和&amp; 'TestHelper'已启用(在acceptance.suite.yml&amp; functional.suite.yml文件中)

显然amOnPage()函数是问题 - 但是我被引导相信amOnPage()应该在验收和功能测试中工作?或者我错了 - 也 - 有人可以解释数字的含义,例如'&lt; - [35; 1m'出现

更新:我尝试将'WebHelper'模块添加到functional.suite.yml但我没有看到在TestGuy.php文件中自动生成amOnPage() - 任何想法?

我的配置文件如下:

WebGuy

class_name: WebGuy
modules:
enabled:
    - PhpBrowser
    - WebHelper
config:
    PhpBrowser:
        url: 'http://v3.localhost/'

TestGuy

class_name: TestGuy
modules:
enabled: [Filesystem, TestHelper, WebHelper]

2 个答案:

答案 0 :(得分:9)

嗯,就是这样,因为TestGuy没有那些方法。所有这些方法都在PhpBrowser,Selenium2模块或其他继承自Codeception Mink实现的方法中。因此,您需要在模块部分的功能套件中添加PhpBrowser,然后运行codecept build命令。

另请注意,最好使用Selenium2模块进行验收测试,使用PhpBrowser进行功能测试。主要思想是接受(Selenium2)测试必须覆盖应用程序的那些部分,这些部分不能被功能(PhpBrowser)测试所覆盖,例如一些js-interaction。

答案 1 :(得分:-1)

关于'<-[35;1m'启动脚本codecept run --no-colors以从控制台输出中删除'<-[35;1m'

相关问题