Как включить модуль функций в настройке самого простого тестового набора
Я пытаюсь проверить некоторые разрешения, связанные с пользовательскими типами узлов и органическими группами, которые я создал и упаковал как функцию с помощью модуля функций.
Я пытаюсь включить эту функцию (и создать все типы контента и таксономии, которые являются частью этой функции) в методе настройки моего самого простого класса тестового примера следующим образом:
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? Как насчет зависимостей моих зависимостей? Имеет ли значение порядок?
1 answers
Начиная с Drupal 7, вам не нужно явно указывать зависимости модулей, они разрешаются автоматически. Порядок также не имеет значения по той же причине.
Что касается фактического включения этой функции, то должно быть в порядке... Я собирался предложить вызвать drupal_static_reset('system_list')
до module_list()
, но он уже делает это сам, когда вы передаете TRUE
в качестве первого параметра, как вы это сделали.
У меня возникли некоторые проблемы при тестировании модулей функций, и в определенных ситуациях я обнаружил, что на самом деле лучше (и намного медленнее) заставить SimpleTest использовать действующую базу данных.
Конечно, это очень специфично для определенных типов клиентских проектов, но все же может помочь!:)