Behat无法找到我的上下文类

时间:2016-04-26 15:44:33

标签: php behat

我有一个功能文件夹是根目录,在子目录内我有一个名为public的文件夹,有2个功能上下文类。 SignIn.php和PostProject.php

我在behat.yml文件中指定了上下文类的路径,它一直告诉我找不到上下文类,不能使用它?我真的不知道它怎么找不到它。

我不知道如何纠正这个问题......对我来说看起来不对,也不确定我做错了什么。

任何帮助都会非常感激。下面是我的behat.yml文件

default:
    suites:
        public:
            paths:      [%paths.base%/features/public]
            contexts:
                - PostProject
                - SignIn
                - Behat\MinkExtension\Context\MinkContext
    extensions:
      Behat\MinkExtension:
        goutte: ~
        selenium2: ~

1 个答案:

答案 0 :(得分:0)

我找到了答案。

上下文类需要由其名称空间自动加载。它需要在behat.yml文件中指定。路径上下文用于功能测试(test.feature)文件

这是修订后的.yml文件

default:
    autoload:
        '': %paths.base%/features
    suites:
        public:
            paths:      [%paths.base%/features]
            contexts:
                - public1\PostProject
                - public1\SignIn
                - Behat\MinkExtension\Context\MinkContext
        client:
            paths:      [%paths.base%/features]
            contexts:
                - Client
    extensions:
      Behat\MinkExtension:
        goutte: ~
        selenium2: ~

上下文类的示例

namespace public1;

date_default_timezone_set("America/New_York");
use Behat\Behat\Context\Context;
use Behat\Behat\Context\SnippetAcceptingContext;
use Behat\Behat\Hook\Scope\BeforeScenarioScope;

/**
 * Defines application features from the specific context.
 */
class SignIn  implements Context, SnippetAcceptingContext
{
//Content here
}



namespace public1;

date_default_timezone_set("America/New_York");
use Behat\Behat\Context\Context;
use Behat\Behat\Context\SnippetAcceptingContext;
use Behat\Behat\Hook\Scope\BeforeScenarioScope;

/**
 * Defines application features from the specific context.
 */
class PostProject  implements Context, SnippetAcceptingContext
{
//Content here
}