Как включить модуль функций в настройке самого простого тестового набора


Я пытаюсь проверить некоторые разрешения, связанные с пользовательскими типами узлов и органическими группами, которые я создал и упаковал как функцию с помощью модуля функций.

Я пытаюсь включить эту функцию (и создать все типы контента и таксономии, которые являются частью этой функции) в методе настройки моего самого простого класса тестового примера следующим образом:

class PermissionsTestCase extends DrupalWebTestCase {
  public function setUp() {
    parent::setUp(array(
      'addressfield',
      'ctools',
      'date',
      'entityreference',
      'features',
      'file',
      'list',
      'node',
      'og',
      'og_field_access',
      'og_ui',
      'options',
      'strongarm',
      'taxonomy',
      'text',
      'my_custom_feature',
    ));
    debug(module_list(TRUE));
    debug(features_get_features());

    // More setup stuff that depends on content types and taxonomies in my feature
    // ...
  }
}

Однако, когда я смотрю на вывод module_list, он не включает мою функцию или зависимости и последующие задачи настройки, основанные на таксономии, которая является частью моей функции, не находят словаря таксономии.

Могу ли я включить модуль, созданный с помощью функций, в методе настройки? Как лучше всего это сделать?

Должен ли я явно указывать зависимости моей функции в вызове parent::setup? Как насчет зависимостей моих зависимостей? Имеет ли значение порядок?

Author: Geoffrey Hing, 2013-11-27

1 answers

Начиная с Drupal 7, вам не нужно явно указывать зависимости модулей, они разрешаются автоматически. Порядок также не имеет значения по той же причине.

Что касается фактического включения этой функции, то должно быть в порядке... Я собирался предложить вызвать drupal_static_reset('system_list') до module_list(), но он уже делает это сам, когда вы передаете TRUE в качестве первого параметра, как вы это сделали.

У меня возникли некоторые проблемы при тестировании модулей функций, и в определенных ситуациях я обнаружил, что на самом деле лучше (и намного медленнее) заставить SimpleTest использовать действующую базу данных.

Конечно, это очень специфично для определенных типов клиентских проектов, но все же может помочь!:)

 0
Author: Alex Weber, 2014-01-14 01:53:47