【问题标题】:Is it possible to store Functional/Acceptance config URL of Codeception outside repository?是否可以将 Codeception 的功能/接受配置 URL 存储在存储库之外?
【发布时间】:2015-08-07 09:33:44
【问题描述】:

我有一个带有 Codeception 的 PHP 项目,几个开发人员正在从事该项目。每个人都有自己的环境和指向他们项目副本的不同 URL。但是在 Codeception Functional/Acceptance yml 配置文件中,我们必须为验收和功能测试设置 URL。

我们如何拥有不同的项目 URL 并在存储库中拥有配置的主要部分? 先感谢您。

【问题讨论】:

  • 嗨@karma_police。我完全没看懂!抱歉,如果我理解错了,您想在本地项目中使用您的存储库配置吗?还是带有远程项目的本地配置?

标签: php git functional-testing codeception


【解决方案1】:

解决此问题的一种方法是查看$_SERVER['HOSTNAME'] 值并从中选择适当的网址。我目前在我的tests/acceptance/_bootstrap.php

switch($_SERVER['HOSTNAME'])
{
  case 'dev1':
    $base_url = 'http://www.example.com.dev1';
    break;
  default:
    $base_url = 'http://www.example.com';
    break;
}
define("BASE_URL",$base_url);

然后你可以在测试中使用这个常量

$I = new AcceptanceTester($scenario);
$I->wantTo('ensure that the a user can log in');
$I->amOnUrl(BASE_URL . "/home");

【讨论】:

  • 谢谢,这是可能的方法,但我们总是必须在每次测试中重新定义BASE _URL。还是希望通过codeception环境文件有更好的解决方案docs
  • @karma_police,通过将BASE_URL 的定义放在引导文件中,您只需定义一次,然后在每个测试中都可以使用它。
【解决方案2】:

我也有同样的问题。我问了同样的问题here。我使用--environment 选项来完成这项工作。

这里是示例配置:

class_name: FunctionalTester
modules:
    enabled:
        # add framework module here
        - Yii1
        - \Helper\Functional
        - PhpBrowser
        - Db
    config:
        Yii1:
            appPath: '/Volumes/disk0s4/www/new-proj/trunk/test.php'
            url: 'https://my.proj.local/test.php'
        PhpBrowser:
            url: 'https://my.proj.didin/'
        Db:
            dsn: 'mysql:host=127.0.0.1;dbname=test-proj-new'
            user: 'root'
            password: 'root'
env:
    my_env:
       modules:
            enabled:
                - Yii1
                - \Helper\Functional
            config:
                Yii1:
                     appPath: 'path to index.php of my environment'
                     url: 'http://my.local/test.php'
    production_env:
       modules:
            enabled:
                - Yii1
                - \Helper\Functional
            config:
                Yii1:
                     appPath: 'path to index.php of production environment'
                     url: 'http://my.local.com/test.php'

我知道配置包含重复行并且应该能够被简化,我试图通过删除全局modules 处的重复行来简化,但似乎对我不起作用。

所以我让你在上面看到的配置,我已经为它创建了Issue,但仍然想知道是否有人让这个overriding 工作。

我希望这对任何人都有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 2014-04-06
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    相关资源
    最近更新 更多